如何在 Jade 中设置可变布局?

How to set a variable layout in Jade?

我想在 Jade 中设置自定义布局路径。

我从我的应用程序中获取路径并将其放在 res.locals._layout 中的 Express 中(app.js 在 /lib 下):

app.set('views', __dirname + '/../views');

app.set('view engine', 'jade');

res.locals._layout = layout_path;

然后我尝试将它传递给 extends 在我看来是这样的:

extends _layout

我也测试了extends #{_layout},结果也很糟糕...

这是最后一个错误:

ENOENT, no such file or directory '/root_path/views/#{_layout}.jade'

doc在这一点上并不冗长。

我不认为你正在尝试做的事情是由 jade 支持的。 extends 在编译模板时解析,然后才能应用任何 res.locals 状态。但是这个线程中提到了一些解决方法。

https://github.com/jadejs/jade/issues/520