带有两个脚本的Jade渲染错误,Uncaught SyntaxError:Unexpected token<

时间:2015-12-22 06:53:43

标签: javascript express pug

以下是我的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。

1 个答案:

答案 0 :(得分:1)

我在我的渲染函数中放了一个日志语句,发现它被调用了三次,一次是我指定的postid值,另一次是all.css和all.js的值 - 我假设Jade模板正在对这些文件进行额外的get请求,并且它们的名称被设置为postid的值。

我本质上是试图通过将url参数的值作为变量传递给主应用程序'/'来处理我的路由。例如,/category/page将被路由到'/',其中local variables category =“category”和page =“page”。它没有用。

我接下来尝试获得所需的效果将是为'/ *'渲染index.jade并使用哈希处理前端的URL路由。