node.js - 在子目录中找不到 Jade 布局

标签 node.js express pug

我的设置:

我的目录结构是这样的:

/views/
   |-- index.jade
   |-- layout.jade
   /account/
      |-- login.jade
      |-- register.jade

我的 View 引擎配置如下:

app.set('view engine', 'jade');

编辑:我也有

app.set('views', __dirname + '/views');

我的 Controller 看起来像:

app.get('/login', redirectIfLogined, function(req, res){
    res.render('account/login', { title: "Login", redir: req.query.redir});
});

app.get('/register', redirectIfLogined, function(req, res) {
    res.render('account/register', { title: "Register"});
});

我的问题

根据描述的设置,我收到 500 错误:

500 Error: failed to locate view "layout"
at Function.compile (D:\dev\Azznomad\express-template\node_modules\express\lib\view.js:58:15)
at ServerResponse._render (D:\dev\Azznomad\express-template\node_modules\express\lib\view.js:414:18)
at ServerResponse.render (D:\dev\Azznomad\express-template\node_modules\express\lib\view.js:315:17)
at ServerResponse._render (D:\dev\Azznomad\express-template\node_modules\express\lib\view.js:429:10)
at ServerResponse.render (D:\dev\Azznomad\express-template\node_modules\express\lib\view.js:315:17)
at D:\dev\Azznomad\express-template\controllers\accountController.js:6:13
at callbacks (D:\dev\Azznomad\express-template\node_modules\express\lib\router\index.js:272:11)
at D:\dev\Azznomad\express-template\modules\middleware\account.js:27:9
at callbacks (D:\dev\Azznomad\express-template\node_modules\express\lib\router\index.js:272:11)
at param (D:\dev\Azznomad\express-template\node_modules\express\lib\router\index.js:246:11)

只要我将我的 layout.jade 文件复制到 /account/ 文件夹中,它就可以完美运行。不幸的是,这没有任何意义,因为它迫使我拥有冗余的布局文件。

我错过了什么?


顺便说一句。此代码片段来自 AzzNomad 的 express/mongoose template这对于学习用 mongoose 表达非常有帮助。

最佳答案

你需要放

扩展 ../layout

因为布局不在同一个文件夹中,所以在您的 View 下。

关于node.js - 在子目录中找不到 Jade 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10472437/

相关文章:

node.js - 未处理的拒绝 RangeError : Using transaction with a client that is in monitor mode does not work due to faulty return values of Redis

javascript - TypeError undefined 不是一个函数

node.js - 从 next() 调用时 req 未定义

css - 使用 "style=' foo '"in jade to modify css related by pseudo-element ":before"

node.js - 在 Jade 包含中使用变量

java - 关于框架(概念)

node.js - PM2 如何在 Heroku 上执行命令?

node.js - 将 Express 与 GraphQL 结合使用,而不是简单地将 Node.js 与 GraphtQL 结合使用,有什么好处?

node.js - 具有许多文档和负载的 Mongoose 游标

dynamic - Jade : how does one assign the 'checked' attribute to dynamically generated radio button inputs?