解决 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中静态资源的路径问题

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值