0

好的,所以我在快速让我的模板与扩展/阻止关键字一起使用时遇到问题。我能够让索引模板正常工作;但是,当我尝试添加第二个模板时,“扩展”似乎不起作用。我已经粘贴了下面的代码,我们将不胜感激!(作为参考,我正在运行 express 版本 2.5.8 和节点 0.6.12)

应用程序.js:

var express = require('express')
  , routes = require('./routes');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser());
  app.use(express.session({ secret: 'your secret here' }));
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
  app.set('view options', { layout: false, pretty: true });
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Routes

app.get('/', routes.index);
app.get('/login', routes.login);

app.listen(3000, function(){
  console.log("Express server listening on port %d in %s mode", app.address().port,     app.settings.env);
});

路线/index.js:

exports.index = function(req, res){
  res.render('index', { title: 'rm-dash-r' })
};

exports.login = function (req, res) {
    res.render('login', { title: 'rm-dash-r' })
};

在 views/ 目录中,有 3 个文件。index.jade、main-layout.jade 和 login.jade。对于测试,login 和 index 是相同的文件。

主要布局.jade:

!!!
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
  body(style='margin: 0 22%;')
    div.container
        div.header
            a(href='/')
                span rm-dash-r

        div.stripes
            span

        div.nav
            a(href='/') Blog
            a(href='/') About
            a(href='/') Projects
            div.clearer
                span

        div.stripes
            span

        div.main
            div.left
                div.content

                    block content
...

index.jade/login.jade:

extends main-layout

block content
    h1 testing

本质上,'/' 的路由没有任何问题,但登录路由只会呈现 login.jade 标记,页面顶部的扩展主布局除外。

如果有任何其他有助于了解的信息,请告诉我。

4

1 回答 1

0

好吧,经过大量的试验和错误,我似乎让它工作了。出于某种原因,在 login.jade 的第一行添加返回(即扩展主布局现在是第 2 行)之后,这一切似乎都有效。

我一点也不知道为什么会这样,但如果有人能解释一下,我很想听听。

于 2012-06-02T16:54:34.753 回答