当前位置: 首页 > 面试题库 >

如何将外部.js文件包含到ejs节点模板页面中

狄宇
2023-03-14
问题内容

我找不到将外部.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之前在服务器上呈现(它将在浏览器上启动),因此无法返回到服务器并要求已发送到浏览器的页面上的某些先前更改。



 类似资料:
  • app.js图像 我有两个文件app.js和landing.ejs,当运行服务器时,它没有显示错误,服务器正在运行,但当我转到http://localhost:3000/iam时,我得到的是ejs文件的名称,而不是ejs文件中的html内容。请帮助我。 浏览器映像 在此输入图像说明

  • 问题内容: 我最近开始学习Go。我有一个像网络应用程序这样的示例。我有: 我无法加载本地。当我写的时候它被加载了。如何加载本地js文件?我不擅长使用Go编写代码,也没有编写完整的代码。因此,请尝试解释非常简单。提前致谢! 问题答案: 您需要a 或a 来在请求时将文件内容()发送到Web浏览器。 您有3种选择: 手动执行 这是更复杂的解决方案。就像在处理程序函数中,您读取文件的内容,设置适当的响应内

  • 问题内容: 我需要能够在其中存储数据库配置属性,并以 jstl* 表达式的形式包含它。(例如:$ {password}等)。怎么做? * 当前的hibernate.cfg.xml: 我需要这样的东西: 问题答案: 您声明使用Spring,然后为什么不让Spring进行所有艰苦的工作。让属性占位符替换所需的占位符。 免费提供建议,而不使用内部hibernate连接(不建议在生产中使用),在Sprin

  • 我想在ASP.NET中包含其他aspx文件到主aspx文件,我可以在jsp中这样做,jsp中的代码包括

  • 问题内容: 我正在使用LiteIDE for Go。我的Go文件位于此处: 当我使用以下文件添加文件时: 导入“ ../Helper” 我收到此错误: 无法加载软件包:/Users/username/go/src/src/projectA/main.go:4:8:非本地软件包中的本地导入“ ../Helper” 有什么想法我做错了吗? 问题答案: 您通过导入路径导入软件包。对于位于中的packag

  • 问题内容: 我正在为使用Jinja模板的服务器使用Flask微框架。 我有一个家长和孩子们的一些所谓的模板和,这些孩子有的模板是相当大的HTML文件,我想以某种分裂他们超过我的工作更好的洞察力。 我的脚本内容: The magic is in : 魔力在于child1.html: 而不是评论: 我有很多html文本,很难跟踪更改并且不犯一些错误,因此很难查找和纠正。 我只想加载而不是全部写入。 我