我确信这是一个问题,因为我对EJS和partials如何工作的理解有限,但我正面临着我的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文件是否存在问题,或者它是否是相对/绝对链接问题,但它在过去几天引起了我的悲痛。欢迎任何提示或建议!感谢。
答案 0 :(得分:0)
将此添加到您的app.js并检查
let path = require('path');
app.use(express.static(path.join(__dirname, 'public')));
您的main.js文件无法访问公用文件夹。