2016-10-09 4 views
1

Ist es möglich, Dateien hinzuzufügen, die nicht die .EJS-Endung haben, wenn Sie die EJS-Template-Engine mit node.js verwenden und Express?Include nicht EJS-Dateien in EJS-Vorlage-Engine

Ich möchte Shader in separaten Dateien mit .glsl Ende zum Beispiel setzen. Als ich möchte, dass sie wie folgt sind:

<% include /shaders/example.vertex.glsl %> 

Wenn ich example.vertex.glsl.ejs verwenden es funktioniert, aber als Syntax für Shadern Hervorhebung funktioniert nicht mehr ...

Ich bin eigentlich nicht an ejs gebunden. Jede andere Express-Templating-Engine, in der das funktioniert, ist in Ordnung. Ich habe EJs benutzt, weil ich vorher schon ein bisschen damit gearbeitet habe.

Antwort

1

Sie können dies tun, solange Sie dem Express mitteilen, welche Engine verwendet werden soll, um die Erweiterung mit app.engine(ext, callback) zu verarbeiten.

die folgenden vor Ihren Routen irgendwo Set:

app.engine('glsl', require('ejs').renderFile); 

Dann schließt Du wie <% include /shaders/example.vertex.glsl %> gut funktionieren wird. Diese werden dann wie ejs-Dateien verarbeitet, so wie das Include funktioniert, wie Sie es beschrieben haben, können Sie auch Inline <%=variableFromNode%> type stuff in die enthaltenen glsl-Dateien einfügen und es wird das auch verarbeiten.