vue项目部署到线上报 Uncaught SyntaxError: Unexpected token ‘<‘

在从主平台跳转到Vue子平台时,页面显示为空白,控制台出现3个'UncaughtSyntaxError: Unexpected token '<>'错误。问题源于引用的.js文件实际返回了html内容。解决方案是检查外部文件路径的正确性,并修改webpack配置文件output的文件名格式,确保文件hash值更新后能被nginx正确找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bug描述:该项目作为一个平台的子平台存在,根据nginx路由分发实现路由跳转。在从主平台跳转到该子平台的时候,页面一片空白,在控制台有3个报错,报错内容均为:

Uncaught SyntaxError: Unexpected token ‘<’

点开报错详情,发现文件类型为XXX.js文件,实际内容为一个html文件

此类型错位一般为期待一个js文件,实际返回一个html文件导致

解决方式:

  1. 查看引用外部文件的路径是否正确
  2. vue-cli默认build后的文件格式为:js/[name].[chunkhash].js,每次npm run build之后有改动的文件的hash值都会改变,上传后nginx无法找到最新上传的文件,所以默认返回了index.html文件里的内容,我们的文件后缀名是.js,所以自然无法识别的内容,导致抛出“Uncaught SyntaxError: Unexpected token ‘<’
    尝试修改 build/webpack.prod.conf.js 文件中 output输出的文件名格式
output: {
  path: config.build.assetsRoot,
  filename: utils.assetsPath('js/[name]_[chunkhash].js'),
  chunkFilename: utils.assetsPath('js/[id]_[chunkhash].js')
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值