为什么在将视图包含在 .ejs 文件中时未识别视图?

Why views is not identified when including it in an .ejs file?

这是我的文件夹结构

我已经包含了我的 header.ejs 和 footer.ejs 文件,如下所示:
<% 包括 views/partials/header %><% 包括 views/partials/footer %>

但它向我显示以下错误:
错误:找不到包含文件“views/partials/header”

但是当我写的时候

<% include partials/header %> and <% include partials/footer %>

正在找到文件,一切正常。

还有: <% include /partials/header %> 不工作

这是什么问题,为什么?

请分享任何 link/resource 或关于这样做的任何新概念 需要理解:)

在您的第一种情况下 views/partials/header 只是不使用视图,因为它是默认设置,在第二种情况下 /partials/header 它从根部查看。所以只需使用 partials/header

在你的 app.js 中你可能有这个

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

因此这些行将您的 view engine 设置为 ejs 并将您的应用程序视图文件夹设置为

/Users/Usama/Projects/YelpCamp/views

现在您的应用知道哪个是视图文件夹或从哪里呈现视图

所以在任何你的观点文件中,你都可以直接使用

<% include partials/header %> and <% include partials/footer %>

不需要 /views/partials/footer 或者如果你添加这个 Node.js 寻找

/Users/Usama/Projects/YelpCamp/views/views/partials/footer

这就是你得到错误的原因

Error: Could not find the include file "views/partials/header"

而第二种情况<% include /partials/header %> 因为 / 它会在根文件夹中查找。