Как настроить пути для макета, который будет отображаться в ExpressJS - PullRequest
0 голосов
/ 07 сентября 2011

Ниже приведен код в файле config / rout.js

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

В основном я пытаюсь отобразить views / login / login.jade внутри views / 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 поиск макета в представлениях / макете.

1 Ответ

5 голосов
/ 07 сентября 2011

это должно работать. только что попробовал (с узлом 0.4.11, экспресс 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'
      });
  });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...