玉器模板引擎,如何使用layout.jade?
我在node.js有一个网站; 创build一个页面,说mypage
我注意到我需要创build一个layout.jade
和mypage.jade
文件。 如果我把代码放在mypage.jade
它不会显示,所以首先我layout.jade
layout的布局来填充layout.jade
。
我的问题是,如何在layout.jade
中引用我想在某个容器中加载mypage.jade
的内容,例如? 我可以用相同的布局有不同的页面吗? 我怎样才能做到这一点?
谢谢
http://expressjs.com/guide.html#view-rendering
如果你不想使用布局,你可以全局禁用它们:
app.set('view options', { layout: false });
如果你不这样做,默认情况下,布局是启用的,而Express在your_view_folder / layout.jade中search标准布局
您可以为每条路线指定一个单独的布局:
res.render('page', { layout: 'mylayout.jade' }); // you can omit .jade if you set the view engine to jade
以下是您的布局文件的样子:
doctype html html(lang="en") head title Testing 123 body div!= body
请注意,body将取自“mypage.jade”。
编辑 :
这是应用程序中的一个真实例子:
应用程序文件(包含路由和configuration):
https://github.com/alexyoung/nodepad/blob/master/app.js
布局文件:
https://github.com/alexyoung/nodepad/blob/master/views/layout.jade
晚了一点晚,但我努力寻找答案最初…在layout.jade
doctype html html(lang="en") head body h1 Hello World block myblock
然后在index.jade中
extends layout block myblock p Jade is cool
将呈现
<!DOCTYPE html> <html lang="en"> <head> <body> <h1>Hello World</h1> <p>Jade is cool</p> </body> </html>
我知道一种方法给了我最好的结果,即使有angular度(替代angular度路由/ ng视图)
首先将需要安装快速布局:
npm install --save express-layout
之后,express会在您的views /文件夹中searchlayout.jade文件。 所以,在里面你可以使用:
意见/ layout.jade
html head meta(charset='utf-8') title= title body div!= body
意见/ home.jade
h1 Welcome aboard, matey!
server.js
var express = require('express'), layout = require('express-layout'); var app = express(); app.get('/', function(req, res) { res.render('home', { title: 'Welcome!' });
默认情况下,express会在您的views /文件夹中searchlayout.jade,但是您可以通过使用(是的,不需要编写.jade扩展名)来更改默认值:
app.set('layout', 'default');
之后,express将使用views / default.jade作为默认布局。
另外,如果您想在特定页面中使用不同的布局,则可以使用:
app.get('/', function(req, res) { res.render('home', { layout: 'login', title: 'Welcome!' });
这里express将呈现login.jade作为布局。
我想你是使用Jade作为默认视图引擎,并且不要更改视图的默认文件夹。
这是快速布局文档 。