即使布局设置为True,Express Jade布局也不会渲染

时间:2012-08-20 21:01:56

标签: node.js express pug

我是Express for Node.js的新手,我只是按照Pedro Teixeira's Node Tuts Episode 9设置了一个简单的应用程序。我想试验布局文件,所以我将布局设置为“true”。当我这样做时,它没有用我的布局呈现,只有我的身体。我应该如何正确渲染它?下面是我的app.js文件,我的index.jade,我的layout.jade,以及我渲染页面的截图。

app.js

var express = require('express');

var app = express.createServer();

app.configure(function () {
    app.use(express.logger();
});

app.set('views', __dirname + '/views');
app.set('view engine','jade');
app.set('view options', {layout: true});

app.get('/', function(request, response) {
    response.render('index');
});

app.listen(4000);

index.jade

h2 Hello
p World!

layout.jade

!!! 5
  html
    head
      title My template
    body
  #main
        h1 Content goes here
        p Testing 123
        #container!= body

1 个答案:

答案 0 :(得分:4)

如果您使用的是Express 3,那么渲染模板的方式是正常的。

您的布局必须如下:

!!! 5
  html
    head
      title My template
    body
  #main
        h1 Content goes here
        p Testing 123
        block content

你的模板:

extends layout

block content
  h1 Something

这里的例子:

https://github.com/dotcloud/express-on-dotcloud/blob/master/app/views/layout.jade#L64

https://github.com/dotcloud/express-on-dotcloud/blob/master/app/views/welcome.jade#L1

如果您从Node开始,Express可随意克隆此演示/教程App:
https://github.com/dotcloud/express-on-dotcloud

你可以愚弄它,并发现Express 3的一些不错的功能,如果你想分享你的应用程序,它就会被设置为推送到dotCloud