Jade布局不能在子目录中find

我的设置:

我的目录structrue看起来像这样:

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

我已经configuration我的视图引擎如下:

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

编辑:我也有

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

我的控制器看起来像:

 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/文件夹中,它的作品完美。 不幸的是,这样做没有意义,因为它迫使我有冗余的布局文件。

我错过了什么?


顺便说一句。 这个代码snipplets是从AzzNomad的快速/mongoose模板 ,这是非常有用的,以学习与mongoose快速。

你需要放

extends ../layout

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

您还应该设置视图path,因为它位于应用程序脚本之外的另一个目录中。

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