umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

描述比较复杂,直接截图吧……

前端端口 :8005 ,后端端口 8180
代码如下
config.ts
umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

proxy.ts 因为默认是dev 环境 我就只改了dev 的代码
umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

axiosInstance.ts 我用了 axios 请求 因为有proxy ,所以axios baseurl 设置成空的
umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

具体的请求 apiDevice.ts
umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

我看issue 说要把 mock 禁用了 ,所以我的 package.json 为 start "start": "cross-env UMI_ENV=dev MOCK=none umi dev "

但是结果却是 一个网页
umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

我注意到他请求的 url 是 http://localhost:8005/user/api/capacity ,按常理来说应该是 http://localhost:8005/api/capacity 才对, 然后 proxy才能根据 api 前缀 进行 代理 和后台请求 ,但是不知道他怎么搞的 把 http://localhost:8005/user 当成 是基础 url 了

然后 我又切换到 列表页,请求相同的接口 ,
umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

发现他 请求 的url 就换了 变成 http://localhost:8005/list/api/capacity , 就是说 ant design pro 通过 axios 请求 后台接口时 ,baseurl 为什么会 带 上 当前 的 page 后缀呢? ,我要怎么设置 才能让他 变成 http://localhost:8005/api/capacity ,因为这样才能通过 proxy 和 后台请求

 

直接描述就是  umi 请求 后台的时候 本来应该是 以 http://localhost:8005 为基础 baseurl 的 ,但是 他却 请求后台 变成 当前路由 为 基础 baseUrl 比如当前在

list页面 ,他请求 后台 的时候 baseUrl 是 为 http://localhost:8005/list 导致请求 的时候 api 不好过滤 或者要写多套规则 很麻烦 

解决方法就是 在confit.ts 配置 publicPath 如下图 

umi 开发模式使用代理 和部署 nginx 反向代理 baseurl 的问题

 

上一篇:vue axios 接口环境判断动态设置baseURL


下一篇:vue之axios封装和请求