【问题标题】:includes in express 500 error - .html extension view engine包含在 express 500 错误中 - .html 扩展视图引擎
【发布时间】:2017-10-19 23:14:56
【问题描述】:

我有一个快速应用程序,其中我的视图设置为 HTML,但我实际上使用的是 ejs 引擎来保留 .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 错误:找不到包含包含文件。

在我的视图引擎中,我是否需要将其显式设置为 ejs,而不是我现在采用的方法?如何获得包含以使用 .html 扩展名?

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

    我认为EJS源代码中的相关行在这里:

    https://github.com/mde/ejs/blob/67ca0a80a5a68277774c693204ce49ef11bb84b4/lib/ejs.js#L112

    如果include 还没有扩展名,则将.ejs 附加到文件名的末尾。似乎没有任何方法可以改变这一点,但您可以将 .html 扩展显式添加到您的 include。

    【讨论】:

    • 没想到这一点,但现在说得通了。
    猜你喜欢
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多