解决 Uncaught SyntaxError: Unexpected token ‘<‘ 错误解决方法

问题重现:在vue项目中引入静态资源,放在public文件夹下,使用绝对路径引入,本地运行正常,打包后发布正式环境却报此错误 Uncaught SyntaxError: Unexpected token ‘<‘

问题原因:一般是由于资源路径错误导致的
问题解决:在路径前加上 <%= BASE_URL %>

正确理解 Vue内部的 静态资源文件引用规则

public、static、assets

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目录了

可参考:
Vue处理静态资源及public/static/assets目录的区别
详解vue中静态资源的路径问题

你可能感兴趣的:(VUE)