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');