我知道一种方法可以给我最好的结果,即使是 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 doc。