Node.js EJS 部分

马特·坎贝尔

我确信这是一个问题,因为我对 EJS 和部分如何工作的理解有限,但我在我的 Node.js 应用程序中面临着似乎是奇怪的行为。我使用 EJS 作为我的模板引擎,我的基本目录结构如下:

- public
----- css
----- js
---------- main.js
- views
----- index.ejs
----- about.ejs
----- login.ejs
----- admin
---------- user.ejs
---------- categories.ejs
----- _layouts
---------- footer.ejs
---------- head.ejs
---------- header.ejs
---------- nav.ejs
---------- scripts.ejs
- package.json
- app.js

完整的目录结构

我的 index.ejs 很简单:

<% include _layouts/nav %>
<%- content %>
<% include _layouts/footer %>

此外,nav.ejs 包括 head.ejs,footer.ejs 包括 scripts.ejs。

现在奇怪的行为是在 index.ejs 上,一切正常,并且能够“找到”main.js。但是,每当我访问 about.ejs 或 login.ejs 或 index.ejs 以外的任何地方时,都找不到 main.js。如果我将 main.js 代码“硬编码”到这些文件中,一切都会按预期进行。我不知道这是嵌套包含与 ejs 文件的问题,还是相对/绝对链接问题,但最近几天它一直让我感到悲伤。欢迎任何提示或建议!谢谢。

桑托什·苏里亚万什

将此添加到您的 app.js 并检查 let path = require('path'); app.use(express.static(path.join(__dirname, 'public')));

您的 main.js 文件无法访问公共文件夹。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章