0

如果我理解的话,我可以在使用 Jade 时将模板的某些部分移动到父模板吗?

我尝试将一些 js 文件的链接移动到 head 部分,我只与网站的一部分一起使用,但出现错误。

我的layout.jade:

!!!
html(lang='en')
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/box.css')
    block scripts
  body
    ..

我的 index.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

我究竟做错了什么?

4

1 回答 1

2

..您的片段中,您引用了一个body尚未定义的变量。我猜在第 13 行左右index.jade

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中所述:

删除了......“布局”的概念(现在特定于模板引擎)

于 2012-05-30T21:30:18.120 回答