包含在express 500错误 - .html扩展视图引擎
问题描述:
我有一个快递应用程序,其中我的视图设置为HTML,但我实际上使用ejs引擎来保留.html扩展名。它看起来像这样:包含在express 500错误 - .html扩展视图引擎
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');
app.engine('html', ejs.renderFile);
app.use(expressLayouts);
我想在我的模板中使用ejs包括。我的文件夹结构如下:
views/includes/include.html
我包括看起来像这样:
<% include includes/include %>
当视图发动机设置为EJS(以便例如app.set('view engine', 'ejs');
)的包括按预期方式工作。但是,使用视图引擎配置,我现在当(app.set('view engine', 'html'); app.engine('html', ejs.renderFile);
)我得到这样的:
GET/500 2.074 ms - 2580 Error: Could not find include include file.
在我看来引擎,我需要明确地将其设置为EJS,与我现在采用的方法?我如何获得包含.html扩展名的工作?
答
我觉得在EJS源代码中的相关行是在这里:
https://github.com/mde/ejs/blob/67ca0a80a5a68277774c693204ce49ef11bb84b4/lib/ejs.js#L112
这追加.ejs
到文件名的最后一个include
如果它不已经有一个扩展。似乎没有任何方法可以改变这种情况,但是您可以将.html
扩展程序明确添加到include
。
没有想到这一点,但现在变得非常有意义。 – kawnah