玉模板引擎,如何使用layout.jade?

Mas*_*iar 18 node.js express pug

我在node.js有一个网站; 创建一个页面,说mypage我注意到我需要创建一个layout.jademypage.jade文件.如果我mypage.jade没有显示代码,那么首先我必须填写layout.jade页面的布局.

我的问题是,如何在内部引用layout.jade我想加载mypage.jade某个容器中的内容,例如?我可以使用相同布局的不同页面吗?我怎样才能做到这一点?

谢谢

ale*_*lex 30

http://expressjs.com/guide.html#view-rendering

如果您不想使用布局,可以在全局禁用它们:

app.set('view options', {
  layout: false
});
Run Code Online (Sandbox Code Playgroud)

如果不这样做,默认情况下会启用布局,Express会在your_view_folder/layout.jade中搜索标准布局

您可以为每条路线指定单独的布局:

res.render('page', { layout: 'mylayout.jade' }); 
// you can omit .jade if you set the view engine to jade
Run Code Online (Sandbox Code Playgroud)

以下是您的布局文件的方式:

doctype html
html(lang="en")
  head
    title Testing 123
  body
    div!= body
Run Code Online (Sandbox Code Playgroud)

请注意,正文将从"mypage.jade"中获取.

编辑:

这是应用程序中的一个真实示例:

应用程序文件(包含路由和配置):https:
//github.com/alexyoung/nodepad/blob/master/app.js

布局文件:https:
//github.com/alexyoung/nodepad/blob/master/views/layout.jade


Sco*_*man 5

派对有点晚了,但我最初努力找到答案......在layout.jade

doctype html
html(lang="en")
    head
    body
        h1 Hello World
        block myblock
Run Code Online (Sandbox Code Playgroud)

然后在index.jade中

extends layout
    block myblock
        p Jade is cool
Run Code Online (Sandbox Code Playgroud)

会渲染

<!DOCTYPE html>
<html lang="en">
<head>
<body>
    <h1>Hello World</h1>
    <p>Jade is cool</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)