如果我理解了,当我使用 Jade 时,我可以将模板的某些部分移动到父模板吗?
我尝试将指向某些js文件的链接移动到head部分,我只将其用于网站的一部分,但是出现错误。
我的布局.翡翠:
!!!
html(lang='en')
head
title= title
link(rel='stylesheet', href='/stylesheets/box.css')
block scripts
body
..
我的索引.jade(只是为了尝试,它将在其他文件中)
extends layout
block scripts
script(src='myscriptfile.js')
div#sortable
..
和节点服务器的某些部分:
app.get('/', function(req, res){
res.render('index',
{title: 'My title',
images: images}
);
});
我切换此选项真/假
app.set('view options', { pretty: true });
但仍然收到错误:
Express
500 ReferenceError: E:projekt/views/index.jade:13 11| 12| > 13| 14| body is not defined
我做错了什么?
在代码段的..
中,您引用的是一个尚未定义的body
变量。我猜大约是index.jade
的第 13 行:
500 ReferenceError: E:projekt/views/index.jade:13 11| 12| > 13| 14| ...
您必须将其从视图中删除或在视图数据中定义它:
res.render('index',
{title: 'My title',
images: images,
body: '...'}
);
旁注:
如果尚未升级到 Express 3.x,则可能需要确保禁用布局:
app.set('view options', {
layout: false,
pretty: true
});
继承和块旨在替换布局,而不是使用它们。如从 2.x 迁移到 3.x 中所述:
删除。。。"布局"的概念(现在特定于模板引擎)