【发布时间】:2017-05-19 09:50:57
【问题描述】:
我使用 pug 作为 nodejs 应用程序的视图引擎。我有一个所有其他当前视图都扩展的布局,其中包含一个导航栏,其中包含指向应用程序中常见 url 的链接。
例如,登录网址的链接如下所示:
a(href='/auth/signin')`
这从根 url ('/') 可以正常工作,正确地导致 '/auth/signin'。
在包含“/auth/signin”、“/auth/signup”和“/auth/signout”路由的“/auth”模块中,行为是不同的。相反,路由与当前模块的名称连接。例如,在“/auth/signin”路由中,链接实际上是指向“/auth/auth/signin”的链接。单击它自然会导致 404,但在该页面上,登录链接是指向“/auth/auth/auth/signin”的链接。
等等等等。
我不完全了解这里发生了什么以及如何防止它。是否可以在不直接输入完整 url 的情况下在 pug 中以绝对术语链接到我的路线(由于各种原因这是不切实际的),就像在 Ruby on Rails 中使用路线助手一样?
【问题讨论】:
-
如果您的 href 以斜杠开头,那么这些将被解释为绝对 url。然后,您的 pug 文件位于哪个文件夹中并不重要。请检查您的 href 是否始终以
/开头。 -
哇,我确定我已经尝试过了。尴尬!谢谢你的帮助,我快疯了。
-
很高兴知道你把它整理出来了 :)
标签: node.js templates layout pug