如何在node.js中实现jade模板继承

时间:2012-12-23 13:52:18

标签: node.js inheritance pug

我在同一个文件夹中有两个玉模板,就像:

  |__layout.jade
  |__content.jade

并且layout.jade是父模板,content.jade将继承它:所以在layout.jade

doctype 5
html(lang="en")
  head
    title= title
  body
    block content
content.jade

中的

extends layout

block content
 h1 this is frome nested template

然而,当我运行它时,继承不起作用,它只显示父模板的内容

所以我的代码出了什么问题?

4 个答案:

答案 0 :(得分:2)

确保在content.jade中添加关键字“append”。

extends layout

block append content
  h1 this is from nested template

More on this here.

答案 1 :(得分:1)

这可能是一个完全红色的鲱鱼,但我注意到你的两个文件似乎有不一致的缩进(至少粘贴在上面)。

如果你纠正这个是否有效?

答案 2 :(得分:1)

我遇到了类似的问题,并在stack-overflow / Jade文档中尝试了node.js的各种答案。

在你的app.js文件中检查以下内容..

1)检查视图引擎是否设置为jade(现在重命名为pug):

app.set("view engine", "jade");

2)设置views文件夹(即保存模板/视图文件的位置):

app.set("views", __dirname + "/views");

3)将布局设置为false:

app.set('view options', { layout: false });

4)如果您使用express,请检查您是否正在呈现正确的文件

app.get("/", function(req, res){
    res.render("contents.jade");
});

希望有所帮助

答案 3 :(得分:0)

我测试了你的代码,没关系,你想尝试更新版本的node.js和jade吗?