如何配置ExpressJS要呈现的布局的路径

Alo*_*ain 0 javascript javascript-framework node.js express

以下是config/routes.js文件中的代码

module.exports = function(app) {
    app.get('/', function(req, res) {
        res.render('login/login.jade', {
            layout : 'layouts/login.jade',
            title : 'Express'
        });
    });
};
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试的是在views/layouts/login.jade中渲染views/login/login.jade.

但是express.js查找布局文件的路径是相对于views/login以下是我得到的错误.

**failed to locate view "layouts/login.jade", tried:
  - ../msf_showcase_exp/views/login/layouts/login.jade
  - ../msf_showcase_exp/views/login/../msf_showcase_exp/views/layouts/login.jade**
Run Code Online (Sandbox Code Playgroud)

无论如何要在Express.js中指定搜索视图/布局中的布局.?

pky*_*eck 5

这应该工作.刚尝试过(节点0.4.11,表示2.4.6和玉0.15.4)

文件夹看起来像这样

jadetest
|
-- app.js
|
-- package.json
|
-- public
|
-- route
|  |
|  -- router.js
|
-- views
   |
   -- index
   |  |
   |  -- index.jade
   |
   -- layouts
      |
      -- layout.jade
Run Code Online (Sandbox Code Playgroud)

在app.js中:

var express = require('express');
var app = module.exports = express.createServer();
var router = require('./route/router')(app);
Run Code Online (Sandbox Code Playgroud)

在router.js中

module.exports = function(app) {
  app.get('/', function(req, res) {
    res.render('index/index', {
        title: 'Express',
        layout: 'layouts/layout'
      });
  });
};
Run Code Online (Sandbox Code Playgroud)