vue打包后axios请求路径错误

发布于 2022-09-07 16:06:56 字数 537 浏览 14 评论 0

这是index.js配置clipboard.png

这是在store里面请求数据时clipboard.png
开发时,他会吧 api装车成http://localhost:8888

但是打包后她就没有转换了 直接是api
clipboard.png
我哪里还需要配置吗?
还有打包是,js跟css路径也有错误

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

南街九尾狐 2022-09-14 16:06:56

api 接口一般来讲不会和 H5 部署在一个站点,所以打包后 ajax 请求是需要带上 api 域名的。
故在使用 axios 的时候应该考虑不同的环境使用不同的配置

配置

使用不同配置的方法有很多,这里贴一下我用的方式(放到src/config是为了开发时修改配置不用重启)
clipboard.png

dev环境

export default {
  apiBaseUrl: '/apidomain',
};

prod环境

export default {
  apiBaseUrl: 'http://www.yimo.link',
};

代理设置

proxyTable: {
  '/apidomain':{
    target:'http://test.api.com',//dev接口
    changeOrigin:true,
    pathRewrite: {
      '^/apidomain': ''
    }
  }
}

使用

import config from 'config'
import axios from 'axios'

axios.get(config.apiBaseUrl+"/...")

不过在正式项目中一般会设置一个过滤器来创建一个通用的实例使用
具体的话可以参考下之前写的一个demo项目

简美 2022-09-14 16:06:56

anios.get(url),url要写绝对路径,要把ip或则http://localhost和端口号写全.

感悟人生的甜 2022-09-14 16:06:56

index.js中的设置是开发环境下跨域代理,生产环境没用的,针对这种生产环境,开发环境下请求不同域名的问题,你可以参考下我的这篇文章 vue-cli 搭建的项目处理不同环境下请求不同域名的问题

空心↖ 2022-09-14 16:06:56

楼主解决问题了吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文