[英]EJS Include raw partial without rendering its contents
我在node.js
端使用ejs将部分代码( glsl
着色器)包括在script
标签内的核心页面中。 之后,我计划在客户端检索这些脚本标签的文本内容,并根据客户端变量在客户端使用EJS
动态编译它们。
问题是,在服务器端的初始<%- include ... %>
, EJS
在着色器中挂钩了自己的语法,并尝试对其进行编译,这是我想避免的。
因此,有没有办法像不考虑任何EJS
语法在内的简单文本原始文本一样包含这些部分呢?
核心.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的文件。 其他人照原样通过。
如果有人对特定的编辑感兴趣-在ejs.js
node_modules/ejs/lib
下的node_modules/ejs/lib
您应该找到具有return func;
function handleCache(options, template)
return func;
在底部。
使用以下条件交换此return语句:
if (~filename.indexOf(".ejs")) {
return func;
} else {
return function() {
return template;
};
}
瞧!
也许我会为此选一个PR。 对于我们无法在本地执行此操作,我感到很惊讶。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.