node.js - 如何在 express 中从我的模板目录的根目录中包含/扩展一个 jade 文件?

标签 node.js express pug

给定一个样本结构:

/layout.jade
/really/deep/dir/inside/my/template/folder/example.jade

有什么方法可以扩展 example.jade 中的 layout.jade 而不必跟踪父目录的数量?

这是按预期工作的:

extends ../../../..etc../../../layout

但最好是做这样的事情:

extends /layout

甚至别名/硬链接(hard link)并像这样使用它:

extends layout

同时假设有人知道一个解决方案,它也可以应用于包含吗?

最佳答案

this particular commit 中引入了一项更改.

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

您必须先设置 Jade:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.locals.basedir = app.get('views');

然后,从任何模板,无论嵌套多深,您都可以:

include /layout

关于node.js - 如何在 express 中从我的模板目录的根目录中包含/扩展一个 jade 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905538/

相关文章:

html - 在本地主机服务器上找不到 png 文件

javascript - Express.js res.render() 和 res.redirect()

node.js - 以编程方式将目录中的所有 javascript 文件作为脚本插入 Jade 中

javascript - 使用 npm 下载 jade 时出错(npm install -g jade)

javascript - 无法在中间件中修改/附加 REQUEST

javascript - 如何在 Cloud Functions for Firebase 中实现 json 对象?

css - 将自定义包含路径文件夹添加到 LESS.build

javascript - res.send 未返回预期数据 : JavaScript, Express、Node?

node.js - 在 Express 3 中关闭数据库连接

javascript - Jade bug 脚本加载顺序困惑