Javascript EJ包含原始部分,但不呈现其内容
我在Javascript EJ包含原始部分,但不呈现其内容,javascript,ejs,Javascript,Ejs,我在node.js端使用ejs将部分(glslshader)包含在script标记内的核心页面中。之后,我计划在客户端检索这些脚本标记的文本内容,并基于客户端变量在客户端使用EJS动态编译它们 问题是,在服务器端的初始过程中,EJS在着色器中连接自己的语法并尝试编译它们,这是我想要避免的 因此,有没有办法将这些部分作为一个简单的原始文本块来包含,而忽略其中可能的EJSsyntaxis core.ejs: <script type="x-shader/x-vertex" id="mandel
node.js
端使用ejs将部分(glsl
shader)包含在script
标记内的核心页面中。之后,我计划在客户端检索这些脚本标记的文本内容,并基于客户端变量在客户端使用EJS
动态编译它们
问题是,在服务器端的初始
过程中,EJS
在着色器中连接自己的语法并尝试编译它们,这是我想要避免的
因此,有没有办法将这些部分作为一个简单的原始文本块来包含,而忽略其中可能的EJS
syntaxis
core.ejs:
<script type="x-shader/x-vertex" id="mandelbrotCalcVertexShader">
<%- include shaders/mandelbrotCalcVertexShader.glsl %>
</script>
<script type="x-shader/x-fragment" id="mandelbrotCalcFragmentShader">
<%- include shaders/mandelbrotCalcFragmentShader.glsl %>
</script>
所以,毕竟我对ejs源代码做了一些修改,强制ejs只编译扩展名为.ejs的文件。其他则按原样通过。
如果有人对
node\u modules/ejs/lib
下的ejs.js中的特定编辑感兴趣,您应该找到函数handleCache(选项,模板)
,它具有返回函数代码>在底部
使用以下条件交换此返回语句:
if (~filename.indexOf(".ejs")) {
return func;
} else {
return function() {
return template;
};
}
瞧
也许我会为这件事做个公关,作为一个选择。我很惊讶,我们不能在本地做到这一点 您是否试图将其作为.ejs文件包含?不,它是.glsl
请提供您的代码示例。我觉得.glsl
不在脚本标签中。@lbu-Hm不确定您要引导到哪里,但它在这里。在这种情况下,我唯一能想到的就是使用类似于readFileSync
的方法来获取变量中的文件内容,并将其打印到每个glsl的正确位置。