vue打包后的各种问题汇总

1,607 阅读2分钟

这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战

首先,这里主要说vue2的打包后问题汇总,因为目前项目常用的还是vue2.x。

一、打包后图片找不到

1、图片文件找不到

build: {    // Template for index.html    index: path.resolve(__dirname, '../dist/index.html'),    // Paths    assetsRoot: path.resolve(__dirname, '../dist'),    assetsSubDirectory: 'static',    assetsPublicPath: './',
}

这个就修改项目中config/index.js文件,把assetsPublicPath的值改成'./'就可以了。如果项目目录和我这个不一样,实在找不到如何解决,就按打包后的路径放文件,这是最笨的解决办法。

2、打包后背景图片找不到

这个也经常出现,前提是做完上面的步骤,还是找不到背景图片可以看这个,之前也出过一篇,可以看下:帮你规避vue打包的问题,还有一种不是上次那篇文章的问题,就可以在build/utils.js中找到这个方法generateLoaders,在这个ExtractTextPlugin里面增加:publicPath: '../../'

二、上线后调接口跨域

这个问题一般就是在npm run dev的时候,就是开发环境下调接口一点问题都没有,然后npm run build打包放到服务器上再调接口就会出现报错,请求不到数据。这种有可能是页面放在了A服务器,接口服务放在了B服务器上,开发环境中大家可能在配置文件中配置过proxyTable,这个就是vue中代理跨域的,一般在开发环境中才会配置:

proxyTable是前端代理服务器,是vue-cli脚手架中自带的,专门为跨域做代理中转的服务器配置(代理服务器不是浏览器并且没有同源策略的限制)。在开发模式下,webpack会提供一个http代理服务器,再通过这个代理服务器请求真实的接口服务器,最后再由webpack代理服务器转交给vue程序。

如果是这种情况还需要在生产环境中这样配置才有效,但是如果设置axios拦截,这个就没用

如果有写的不对的地方评论告诉我哦,感谢阅读~