在ejs模板引擎中包含非ejs文件

时间:2016-10-09 06:41:48

标签: node.js express include template-engine ejs

在使用带有node.js和express的ejs模板引擎时,是否可以添加没有.ejs结尾的文件?

我想将着色器放在单独的文件中,例如以.glsl结尾。我想要像这样包括它们:

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

如果我使用example.vertex.glsl.ejs它可以工作,但是着色器的语法高亮不再适用...

我实际上并没有受到ejs的约束。任何其他表达模板引擎,这将是有效的。我刚刚使用了ejs,因为我之前已经使用过它了。

1 个答案:

答案 0 :(得分:1)

只要您告诉快递应使用什么引擎来处理app.engine(ext, callback)的扩展程序,就可以执行此操作。

在您的路线之前设置以下内容:

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

然后,<% include /shaders/example.vertex.glsl %>之类的内容就可以了。这些处理的方式与ejs文件的处理方式相同,因此,除了您所描述的包含工作外,您还可以在包含的glsl文件中放入内联<%=variableFromNode%>类型的内容,它也会处理它。