gpt4 book ai didi

node.js - 如何将外部 .js 文件包含到 ejs Node 模板页面

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:23 27 4
gpt4 key购买 nike

我找不到将外部 .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 文件。此外,它不起作用。

我在 Internet 上找不到任何解决方案。有什么提示吗?

谢谢

最佳答案

你不能

注意:您只能将数据从 .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 变量

是的,你不能:如果它在服务器上。

为什么:

EJS 模板将在 js 开始执行之前呈现在服务器上(它将在浏览器上启动),因此无法返回到服务器并在已发送到页面上请求一些先前的更改浏览器。

关于node.js - 如何将外部 .js 文件包含到 ejs Node 模板页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47001537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com