基于页面网址的玉条件?

时间:2015-04-24 21:45:32

标签: javascript node.js pug

是否可以根据页面路径在布局模板中设置jade条件?是否有页面路径变量?我希望做的事情如下:

if page = "/about"
  link(rel='stylesheet', href='css/about')
else
  link(rel='stylesheet', href='css/main')

这是布局模板的一部分。在哪里以及如何定义变量来驱动它?

3 个答案:

答案 0 :(得分:4)

是的,有可能:

- var page = window.location.pathname

if page === "/about"
   link(rel='stylesheet', href='css/about.css')
else
   link(rel='stylesheet', href='css/main.css')

请注意,上面的代码片段假设模板在浏览器环境中执行。如果不是这种情况,您可以使用您正在使用的语言获取路径名,并将其作为基准传递给模板。例如,如果您使用的是Express框架,request对象的path属性将返回URL的路径部分。

答案 1 :(得分:0)

取决于您的设置

快递:

res.locals.cssPath = 'css/about.css';
res.render('about');

玉: 我不确定这里的语法,因为我不使用jade但你可以访问本地

link(rel='stylesheet', href=cssPath)

答案 2 :(得分:0)

我会在express中使用req.path动态设置路径:

res.locals.path = req.path;
res.render('about');

然后在玉文件中使用路径:

if path === "/about/"
   link(rel='stylesheet', href='css/about.css')
else
   link(rel='stylesheet', href='css/main.css')