以下是我的index.jade文件的违规部分:
script(type="text/javascript")
if user
| window.user = !{user};
else
| window.user = 'null';
if category
| window.category = !{category};
else
| window.category = 'null';
if postid
| window.postid = !{postid};
else
| window.postid = 'null';
script(src="all.js")
我测试了一些东西,我的变量user,category和postid正在被正确地发送给Jade。但是,在渲染时,我收到错误
Uncaught SyntaxError: Unexpected token <
指向文件的开头,window.postid的值设置为“all.js”。显然,某些东西很时髦。类别和postid由url参数设置,并且在既未设置类别也未设置postid('/')或仅设置类别('/:category')的情况下,网站正常工作。然而,正如我所提到的,postid正在正确地发送到Jade('/:category /:postid'),我可以,例如,我可以使用它将页面标题设置为我想要的值,但我可以似乎没有将window.postid设置为以下脚本标记的src值,而是将该值赋给window.postid。
答案 0 :(得分:1)
我在我的渲染函数中放了一个日志语句,发现它被调用了三次,一次是我指定的postid值,另一次是all.css和all.js的值 - 我假设Jade模板正在对这些文件进行额外的get请求,并且它们的名称被设置为postid的值。
我本质上是试图通过将url参数的值作为变量传递给主应用程序'/'来处理我的路由。例如,/category/page
将被路由到'/',其中local variables category =“category”和page =“page”。它没有用。
我接下来尝试获得所需的效果将是为'/ *'渲染index.jade并使用哈希处理前端的URL路由。