Javascript 是否基于页面url?

Javascript 是否基于页面url?,javascript,node.js,pug,Javascript,Node.js,Pug,是否可以根据页面路径在布局模板中设置jade条件?是否存在页面路径变量?我希望做以下事情: if page = "/about" link(rel='stylesheet', href='css/about') else link(rel='stylesheet', href='css/main') 其中,这是布局模板的一部分。我在何处以及如何定义驱动此操作的变量?是的,有可能: - var page = window.location.pathname if page === "/

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

if page = "/about"
  link(rel='stylesheet', href='css/about')
else
  link(rel='stylesheet', href='css/main')
其中,这是布局模板的一部分。我在何处以及如何定义驱动此操作的变量?

是的,有可能:

- var page = window.location.pathname

if page === "/about"
   link(rel='stylesheet', href='css/about.css')
else
   link(rel='stylesheet', href='css/main.css')
请注意,上面的代码段假定模板是在浏览器环境中执行的。如果不是这样,您可以使用正在使用的语言获取路径名,并将其作为基准传递给模板。例如,如果您使用的是Express framework,
请求
对象的属性返回URL的路径部分。

取决于您的设置

简而言之:

res.locals.cssPath = 'css/about.css';
res.render('about');
res.locals.path = req.path;
res.render('about');
杰德: 我不确定这里的语法,因为我不使用jade,但您可以访问本地语言

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

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

res.locals.cssPath = 'css/about.css';
res.render('about');
res.locals.path = req.path;
res.render('about');
然后使用jade文件中的路径:

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

此解决方案假定模板是在浏览器中执行的,而不是在服务器端执行的。@cspotcode是的,确实如此。也许是因为我习惯于做水疗。我会更新的。谢谢我没有使用任何框架-这是一个网站的静态页面夫妇。后端cms是手工制作的,如果这有帮助的话。因此,不确定模板是否在浏览器中执行(顺便说一句,不确定这意味着什么)@user2022284“后端”意味着模板是在服务器端执行的,而不是在浏览器上执行的。您应该使用“cms”(不管是什么)获取路径并将其传递给模板。检查