此问题与将Jade templates与Express.js一起使用有关。
我知道当我写layout.jade
时包含:
!!!
html
body != body
header
h1 My header
当我致电res.render('index')
时,我的实际模板会呈现为body
的开头。
我的问题是:!= body
是什么意思以及Jade / Express如何使用它来确定我的模板在布局中的位置?我知道如果我在另一个元素中更改!= body
,那么实际视图将在那里呈现。有谁知道这个功能的记录在哪里?
答案 0 :(得分:7)
我引用了Jade的documentation/guide:
默认情况下,为了安全起见,缓存了=的代码被转义,但输出您可能使用的非转义返回值!=:
p!= aVarContainingMoreHTML
使用res.render('index')
时,index.jade
的渲染内容(在您的情况下)将作为局部变量传递到布局文件(layout.jade
)。局部变量以 body 的形式提供。但是,如果我们只输出 body 局部变量,它将被转义(特殊字符将被编码)。因此,通过使用!=,正文的内容将被输出 unescaped 。