这是我参与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拦截,这个就没用
如果有写的不对的地方评论告诉我哦,感谢阅读~