【问题标题】:How to configure paths for the layout to be rendered by ExpressJS如何为 ExpressJS 呈现的布局配置路径
【发布时间】:2011-11-12 04:58:48
【问题描述】:

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

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

基本上我正在尝试在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**

是在 Express.js 中指定搜索视图/布局中的布局。 ?

【问题讨论】:

    标签: javascript node.js javascript-framework express


    【解决方案1】:

    这应该可以。刚试了一下(node 0.4.11,express 2.4.6,jade 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);
    

    在 router.js 中

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

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多