2011-09-07 34 views
0

之後呈現的佈局路徑是在配置代碼/ routes.js文件如何配置由ExpressJS

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

基本上,我想是渲染視圖中的意見/登錄/ login.jade /layouts/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** 

無論如何在Express.js中指定要在views/layout中搜索佈局。 ?

回答

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 
在app.js

var express = require('express'); 
var app = module.exports = express.createServer(); 
var router = require('./route/router')(app); 

路由器。 js

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