Я знаю подход, который дал мне лучшие результаты, даже с угловым (вместо angular-route / ng-view)
В первую очередь нужно будет установить express-layout:
npm install --save express-layout
После этого Express выполнит поиск файла layout.jade в вашей папке views / . Итак, внутри этого вы можете использовать:
Вид / 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 будет искать layout.jade в папке views / , но вы можете изменить значение по умолчанию, используя (да, нет необходимости писать расширение .jade):
app.set('layout', 'default');
После этого экспресс будет использовать views / default.jade в качестве макета по умолчанию.
Также, если вы хотите использовать другой макет на конкретной странице, вы можете использовать:
app.get('/', function(req, res) {
res.render('home', {
layout: 'login',
title: 'Welcome!'
});
Здесь express будет отображать login.jade в качестве макета.
Полагаю, вы используете Jade в качестве движка представления по умолчанию и не меняете папку по умолчанию для представлений.
Вот документ express-layout .