Uncaught SyntaxError: Unexpected token <


#1

vue 去掉#之前是没错的,去掉#,history模式后 build打包后跳转页面当在动态路径时,当刷新页面时会出现空白页面,会出现Uncaught SyntaxError: Unexpected token <错误


#2

在去掉#之后出现的问题,去掉#之前没有这样的问题


#3

https://router.vuejs.org/zh-cn/essentials/history-mode.html

不过这种模式要玩好,还需要后台配置支持。


#4

我们后端也进行相应的设置了


#5

看一下控制台 Network 面板,出错的请求返回了什么。如果是 HTML 那就是后端没配置对


#6

我看了下是script


#7

是哪个文件或者函数报了错?


#8

打包后的index.html文件报错

上传到测试环境出的


#9

http://www.wodjf.cn这是我们的测试地址


#10

除了一堆图片 404,没有看到别的错误,页面功能看上去也正常


#11

http://www.wodjf.cn/investment/detail?id=1514890019029166373 是这个页面,就是里面有投资的标,第一次点进去没问题,当刷新页面或者是再点进去其他的标就会出现问题image


#12

还是后端没配置好。第一次点进去正常是因为 vue-router 已经被正常加载,拦截了浏览器的导航行为。刷新就是浏览器真的发请求过去了,vue-router 拦不到。你看看后端服务器的日志,看是不是请求了不存在的文件。


#13

好的,谢谢!我试试看


#14

直接打开Index.html 修改里面的src路径 /static 改成./static , 或者在buld/webpack.base 指定一下publicPath


#15

文件路径就是./static,


#16

刷新页面出现空白 估计是后端路由识别不了 譬如https://www.youproject.com/main/1 刷新时后端没找到这个路径,配置一下后端 找不到的时候重定向到入口的index.html 前端路由就能正常使用了

参考官方文档https://router.vuejs.org/zh-cn/essentials/history-mode.html


#17

好的,我试试看,感谢你的建议


#18

题主, 我也出现了你同样的问题, 路由history模式,点击跳转正常,一刷新就报错误。
app.js:1 Uncaught SyntaxError: Unexpected token <
nginx 也配置了 try_files $uri $uri/ /index.html;
可是没有用~
{ path: ‘/article/:cate’, name:‘symptom’, component: Symptom }, //文章列表


#19

还是我的问题, vue.config的publicPath配置错了,导致静态文件./static进行找,这样多层路进一刷新就找不到了


#20

请问一下,你是怎么解决的呢?我也是用了history模式,一开始刷新是404,配了node和connect-history-api-fallback之后,刷新就报这个错误了