我知道一种方法,即使在使用Angular(替代angular-route/ng-view)时也能给我最好的结果。
首先需要安装express-layout:
npm install --save express-layout
之后,Express将在您的views/文件夹中搜索layout.jade文件。因此,在其中,您可以使用:
views/layout.jade
html
head
meta(charset='utf-8')
title= title
body
div!= body
views/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/文件夹中搜索layout.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 作为默认的视图引擎,并且没有改变视图文件夹的默认设置。
这里是
express-layout 文档。