参考 解决 Uncaught SyntaxError: Unexpected token ‘<‘ 错误解决方法_zlting~的博客-CSDN博客
很有用 记录一下
前言:你可以试试清除缓存这种最直接的方法 说不定就解决了 如果解决不了在参看以下步骤
问题:在vue项目中引入静态资源,放在public文件夹里使用绝对路径
本地运行是没问题的,打包后发布到正式环境却报此错误 Uncaught SyntaxError: Unexpected token ‘<‘
问题方向:这样的问题一般都是我们在打包后引入的资源路径出错的问题
解决方法:我们可以在URL路径前面加上一个公共的路径,即我们的打包配置中publicpath的前缀 <%= BASE_URL %>
或者:只要把这里的 publicPath 设置为 "/" 就行,前面不要加点,改了之后问题就解决了。
提示:其实系统默认就是‘/’,只是部署的时候看到别人的文章都说需要改,就加了个’.’上去,后来发现其实不改就可以了,改了反而会报错,最新版的vue在部署的时候已经不需要修改默认的路径了。
1、public 目录提供的是一个应急手段,当通过绝对路径引用时,需要留意应用会部署到哪里。如果没有部署在域名的根部,需要为你的 URL 配置 publicPath 前缀:
<script src="/js/xx.js"></script>
由于项目正式环境没有部署在域名的根部
,所以需要在URL中配置publicPath 前缀
<script src="<%= BASE_URL %>js/xx.js"></script>
在vue.config.js中声明,正式环境前缀需带上“/demo”,那么这里的BASE_URL
就相当于/demo
publicPath: process.env.NODE_ENV === "production" ? "/demo" : "/",
2、static 目录,与src同级,一般存放第三方文件,不会被 webpack 解析,会直接被复制到最终的打包目录(默认是 dist/static )下,必须使用绝对路径引用,这些文件是不会变动的。
3、assets目录,在编译过程中会被 webpack 处理,当做模块依赖,只支持相对路径的形式。一般放置可能会变动的文件。
注:public 与 static的区别在于:static是vue2.x以下版本的,vue2.x以上的就换成public目录了