我有一个使用Jade模板引擎的node.js express服务器。
我有一个布局Jade文件,它会像这样导入各个视图的正文:
!!!
html
head
title= title || 'Title not set.'
body
#header
h1 Header.
#content!= body //- this renders the body of an individual view
#footer
p Footer.
例如,以下索引页面:
p Welcome to the front page.
p This page serves as a now.js test.
这个很好用。但是,我现在想要为这个索引页面特别包含两个客户端JavaScript库(因此不适用于每个页面,这就是为什么我不能将其放在布局的头部)。
这个有效:
//- import jquery
script(type='text/javascript', src='./jquery-1.5.2.min.js');
//- import now.js (hosts itself)
script(type='text/javascript', src='/nowjs/now.js')
//- import the chat client
script(type='text/javascript', src='./indexChatClient.js')
p Welcome to the front page.
p This page serves as a now.js test.
然而,这样会将脚本加载到完整页面的body中,这不是有效的HTML,对吗?
据我所知,如果要正确处理,应该将脚本加载到head中,但是head部分由布局文件处理。
那么,我应该如何为特定的视图/页面正确地包含这些客户端JavaScript库呢?
app.locals.globalScripts = ['/lib/jquery-min.js', '/lib/bootstrap.min.js'];
然后在视图中可以这样写:-each script in globalScripts script(type='text/javascript', src= script)
上述是按照masylum的回答所述。 - hillmark