我找不到将外部 .js 文件包含到 Node ejs 模板中的方法。我想将逻辑和数据放入外部 .js 文件中的对象中,将该文件包含到 index.ejs 模板并从中提取数据。
我尝试通过插入标准方式<script src="sample.js"></script>
,并且它不起作用
然后我尝试了 ejs 特定关键字<% include partials/sample.js %>
这仅适用于添加部分(ejs 代码片段)。
我将 .js 文件插入到可执行文件 server.js 中定义的静态目录中,再次没有结果。
但有趣的是,例如,将 css 文件包含到 ejs 模板中经典方法可以正常工作
<link href="/assets/styles.css" rel="stylesheet" type="text/css" />
解决方法是包含外部 ejs 文件,我将逻辑和数据放入 标记内,但这显然是一个补丁,而不是一个可行的解决方案,因为 ejs 不是 js 文件。此外,它不起作用。
我在互联网上找不到任何解决方案。有什么提示吗?
Thanks
你不能.
注意:您只能将数据从 .ejs 文件传递到 .js 文件,而不能以其他方式传递数据。它不起作用,因为 .ejs 在服务器端呈现,而 .js 在客户端运行。
我假设您在服务器端使用 EJS
1) 您可以将 ejs 变量值传递给 Javascript 变量
<% var test = 101; %> // variable created by ejs
<script>
var getTest = <%= test %>; //var test is now assigned to getTest which will only work on browsers
console.log(getTest); // successfully prints 101 on browser
</script>
2) 不能将 js 变量值传递给 ejs 变量
是的,你不能:如果它在服务器上。
Why:
EJS 模板将在 js 开始执行之前在服务器上渲染(它将在浏览器上启动),因此无法返回服务器并要求对已发送到浏览器的页面进行一些先前的更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)