2013-03-05 83 views
0

我对Node非常陌生,并且正在使用Express和Jade,我遵循的教程已过时,我似乎无法弄清楚如何执行此操作。Jade多个模板文件

在我app.js文件中声明了以下路线:

app.get('/helloworld', function(req,res) { 
    res.render('tasks/helloworld.jade', { title: 'Hello World!' }); 
}); 

所以对我的看法,我有以下

layout.jade

doctype 5 
html 
head 
    title= title 
    link(rel='stylesheet', href='http://twitter.github.com/bootstrap/assets/css/bootstrap.css') 
body 
    section.container!= body 

尝试使用引导css

然后个任务/ helloworld.jade

extends ../layout 

body 
h1 Hello World 

然而,这似乎并没有得到我想它应该的结果。如果我删除extends ../layout模板呈现,但没有任何标题。如果我把它留在我得到一个错误,说body is not defined

任何想法如何得到这个正确渲染?

+0

把'.jade'放在你的res.render('tasks/helloworld'...' – 2013-03-05 23:56:06

回答

4

在翡翠中,您使用块来扩展模板。试试这个:

layout.jade:

helloworld.jade:

extends ../layout 

block content 
h1 Hello World 

无论在与新的内容布局的block content提供,在这种情况下h1 Hello World这将有效地取代。

编辑:我在布局中添加了一个section.container,因为我后来意识到,我认为你正试图将一切都包裹在身体内。如果这不是你想要做的事情,你可以删除那条线,但是如果你这样做的话,确保你修正了缩进,因为玉关心这个。

+0

我已经试过把标题和页脚放在'block'行但是它们不显示出来......任何想法为什么? – vsync 2013-07-31 22:42:51