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')
},
Logo

前往低代码交流专区

更多推荐