Node JS - 在 Jade 中扩展布局时出错



如果我理解了,当我使用 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 中所述:

删除。。。"布局"的概念(现在特定于模板引擎)

最新更新