如何在Express中的模板目录的根目录中包含/扩展jade文件?

Ale*_*Tzo 6 node.js express pug

给定一个样本结构:

/layout.jade
/really/deep/dir/inside/my/template/folder/example.jade
Run Code Online (Sandbox Code Playgroud)

有没有办法在example.jade中扩展layout.jade而不必跟踪父目录的数量?

这按预期工作:

extends ../../../..etc../../../layout
Run Code Online (Sandbox Code Playgroud)

但最好是这样做:

extends /layout
Run Code Online (Sandbox Code Playgroud)

甚至别名/硬链接并使用它像:

extends layout
Run Code Online (Sandbox Code Playgroud)

假设有人知道解决方案,它是否也可以应用于包括?

Pie*_*eau 1

此特定提交中引入了一项更改。

基本上,如果 include 语句中找到的第一个字符是正斜杠并且定义了 basedir,它将在该路径中查找模板。

您必须首先设置 Jade:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.locals.basedir = app.get('views');
Run Code Online (Sandbox Code Playgroud)

然后,从任何模板,无论嵌套多深,您都可以执行以下操作:

include /layout
Run Code Online (Sandbox Code Playgroud)