vue项目vue.config.js中devServer.proxy代理配置容易让人忽略的问题-踩坑

这种在项目测试注意到一个很奇怪的问题, vue-image-crop-upload 该组件的图片上传请求在开发环境没有一点问题,一到生产环境就开始报错

仔细对比发现问题出在请求路径上
开发环境中 请求都是 http://localhost:8013/开头
而生产环境中 正常的请求都是以后端地址开头,而出问题的请求是以前端地址打头
在这里插入图片描述
该组件请求没有经过封装的axios拦截器,开发环境与拦截器请求地址一样,但到生产,其他封装的情景就以后端服务地址开头了,而组件仍是以前端地址开头
在这里插入图片描述
当时急于解决问题,没有深究原因
只是简单的解决了问题
在这里插入图片描述
data中添加属性,
然后加入url中
在这里插入图片描述
后面开始研究问题所在
通过请求路径不同和请求结果 ,很容易发现,在生产环境中前端地址开头的请求明细是没有被代理或代理出了问题
以前端地址开头请求,请求失败,很明显就是代理有问题

刚开始以为是在生产环境和开发环境中这个devServer.proxy代理配置需要有些差异
搜了一些博客也没有相关的说明或配置

很干脆的把代理配置先注释,直接请求后端地址的请求也没有问题,加上之前了解到了,跨域问题前端代理和后端配置有一个即可

在这里插入图片描述
对比发现,这个控制变量法好像也没啥说服力[手动狗头]
在后端有跨域配置时,代理是完全没必要的,直接以后端地址请求就行了,所以上面的axios拦截直接以后端地址为baseURL就行,着实没必要判断生产环境还是开发环境

后面又去看了一下文档
在这里插入图片描述
这个代理是对于开发环境的
其实也很好理解,这个是代理是vue cli带的,现在换成生产环境,自然没vue cli什么事情了

总结

对于跨域问题,还是后端配置比较方便,devServer.proxy是不在生产环境中生效的,所以当一些组件存在请求封装的时候,一定要使用完整请求路径,即请求后端地址,当然,在前端做了一些别的跨域代理配置另说,之前学习跨域问题的时候,很多博客并未提交以devServer.proxy代理跨域仅在开发环境有效

推荐一个vscode插件

Live Server
在这里插入图片描述
安装后右下角会有个go live ,就可以以本地服务运行dist打包文件了,还是比较方便的

正在学习中,如果存在问题,欢迎指正批评

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值