Jade模板,扩展模板后添加到头部

我试图通过构build一个小型的Web应用程序来使用canvas来绘制用户数据。

目前,我只是把一个Jade模板放在一起,我扩展了以前的模板(我称之为layout.jade),其中包含几乎所有页面上使用的常规资源。

我的问题是,我想要扩展模板,然后将头部的东西只为该页面,而不是其他人。 我一直在玩它一段时间,研究,但无法find它的具体信息。

这是我的

layout.jade !!! 5 html head title EZgraph link(rel='stylesheet', href='bootstrap/css/bootstrap.min.css') link(rel='stylesheet', href='stylesheets/ezgraph.css') body block content block scripts 

这是我正在处理的模板

 extends layout head link(rel='stylesheet', href='stylesheets/barchartentry.css') 

有没有可能做这样的事情? 直觉上,我觉得它应该是,但我只是错过了这样做的机制。

我在本周的一个屏幕video系列剧中进入了这个话题。 这里有一个链接: http : //www.learnallthenodes.com/episodes/10-more-advanced-jade 。

但是,如果你想知道答案,请继续阅读。 您可以在模板文件中使用多个块。 在你的情况下,你可能会使layout.jade看起来像这样:

 layout.jade !!! 5 html head title EZgraph link(rel='stylesheet', href='bootstrap/css/bootstrap.min.css') link(rel='stylesheet', href='stylesheets/ezgraph.css') block extraHeader body block content block scripts 

然后你的模板文件:

 extends layout block extraHeader link(rel='stylesheet', href='stylesheets/barchartentry.css') 

请注意布局和模板中匹配的extraHeader块调用。 这应该让你去。

如果您需要在同一个呈现中从多个模板文件中将内容添加到extraHeader中,则可以使用block append extraHeader或更简洁的append extraHeader 。 如果您希望额外的内容出现在开头,还有一个prepend变体。

编辑:修复了一些缩进。 此外,我缩进block contentblock scripts使他们将是body孩子。 最后,即使这个block extraHeader 将会在你的布局的每个调用中存在,除非你的模板给出了它的内容,它不会注入任何符合你的需求的东西,据我所知。