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

时间:2019-07-04 22:59:13

标签: node.js header ejs footer partials

这是我的文件夹结构

Folder Structure

我已经包含了我的header.ejs和footer.ejs文件,如下所示:
<%包括视图/部分/页眉%> <%包括视图/部分/页脚%>

但是它显示了以下错误:
错误:找不到包含文件“视图/部分/标题”

但是当我写

<%包括部分/页眉%> <%包括部分/页脚%>

它可以找到文件,并且一切正常。

也: <%包括/ partials / header%> 无效

这里是什么问题,为什么?

请分享任何链接/资源或与此相关的任何新概念, 需要了解:)

2 个答案:

答案 0 :(得分:1)

在第一种情况下,views/partials/header只是不使用视图,因为它是默认视图,在第二种情况下,/partials/header是从根目录看。因此,只需使用partials/header

答案 1 :(得分:1)

在您的app.js中,您可能会拥有

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

因此这些行将您的view engine设置为ejs,还将您的应用程序查看文件夹设置为类似

/Users/Usama/Projects/YelpCamp/views

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

因此,在任何您的视图文件中,您都可以直接使用

  

<%包括部分/页眉%>和<%包括部分/页脚%>

不需要/views/partials/footer,或者如果您添加此Node.js查找

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

这就是为什么出现错误

  

错误:找不到包含文件“视图/部分/标题”

在第二种情况下, <%包括/ partials / header%> 由于/,它会出现在根文件夹中。