2015-12-22 87 views
0

这里是我的index.jade文件的违规部分:玉有两个脚本,未捕获的SyntaxError渲染错误:意外标记<

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") 

我测试过的东西,我的变量的用户,类别和帖子ID正在正确地发送给Jade。然而,渲染,我得到一个指向该文件的起始误差

Uncaught SyntaxError: Unexpected token < 

,并window.postid的值设置为“all.js”。显然,有些东西很时髦。类别和postid是通过url参数设置的,并且在没有设置类别或postid的情况下('/')或只设置类别('/:category'),网站工作正常。然而,正如我所提到的,postid正在正确地发送给Jade('/:category /:postid'),例如,我可以使用它将页面标题设置为我想要的值,但我可以没有将window.postid设置为以下脚本标记的src值,似乎并未将该值分配给window.postid。

+0

这个Jade代码看起来正确并且正确编译成HTML。我猜这个错误是在别的地方,在一些脚本中。 '意外的标记<'错误通常伴随着一个破碎的JSON。 –

+0

找不到错误,但我注意到一个特点进一步:不仅是window.postid组在下面的脚本标签(all.js)中的src的值,但all.js设置为渲染index.jade文件的内容,并将索引重命名为应该是window.postid的值。 –

回答

1

我把日志语句在我的渲染功能,并发现它被称为三个不同的时间,与我指定的帖子ID的值一次,两次与all.css和all.js的价值 - 我假设Jade模板正在为这些文件额外获取请求,并且它们的名称被设置为postid的值。

我基本上试图让我的路由通过“/”作为变量,其传递到主应用程序的URL参数的值进行处理。例如,/category/page将通过局部变量category =“category”和page =“page”路由到“/”。它没有工作。

我的下一个尝试获得预期的效果将是渲染“/ *” index.jade,并与哈希前端处理URL路由。

相关问题