EJS - 包含来自与当前目录不同的目录中的包含

时间:2018-01-09 19:03:58

标签: node.js express ejs

我需要在一个不同的目录中包含一个使用EJS模板的包含。我的文件夹结构如下:

-views
---includes
-----navigation.html
-----footer.html
---page
-----layout.html

当我尝试在<% include includes/navigation.html %>中执行page/layout.html时,它会返回:

  

找不到包含文件。

我的视图引擎设置如下:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');
app.engine('html', ejs.renderFile);
app.use(expressLayouts);

我的问题是:我的理解是app.set('views', path.join(__dirname, 'views'));设置了所有视图的路径。但是我不想仅仅拥有views/includes,因为然后尝试包含不在views/includes中的其他包含不起作用,对吗?

如何将包含包含在除当前目录之外的其他目录中?

1 个答案:

答案 0 :(得分:1)

当您的主应用中的设置视图时,只需包含您要用作&#34;包含&#34;的目录。目录:

app.set('views', [path.join(__dirname, 'views'), path.join(__dirname, 'views/includes/')]);