Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript EJ包含原始部分,但不呈现其内容_Javascript_Ejs - Fatal编程技术网

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的正确位置。