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

Posted

技术标签:

【中文标题】如何为 ExpressJS 呈现的布局配置路径【英文标题】:How to configure paths for the layout to be rendered by 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 中指定搜索视图/布局中的布局。 ?

【问题讨论】:

【参考方案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'
      );
  );
;

【讨论】:

以上是关于如何为 ExpressJS 呈现的布局配置路径的主要内容,如果未能解决你的问题,请参考以下文章

导轨/Friendly_id。如何为旧的(丑陋的)URL 呈现 404 页面

VS代码扩展:如何为分机的设置/配置设置顺序/优先级?

如何为 tomcat-maven-plugin 配置额外的上下文路径?

如何为特定值 ex.w[i] == n[i] 设置递归 lapply?

Detox:如何为 Detox 配置提供 bitrise 构建路径以在 bitrise 上测试 E2E

Angular 4 - 如何为 type='input' 呈现 2 个小数位