不要配全地址,加个/api,在nginx做转发
0. vite.config.ts 里的 proxy 只管本地开发
server.proxy(包括 /api、/v1)只在执行 pnpm dev / vite 开发服务器时生效。
你 pnpm run build:pro 打出来的静态包 部署到 nginx 后,浏览器不会再走 Vite 的 proxy,所以改这里解决不了线上环境,只能方便本机联调。
1. 前端环境变量(生产打包)
把 .env.pro 里这一行从完整地址改成相对前缀,例如:
# 原来可能是:VITE_API_BASE_PATH='http://xxx.xxx.xxx.xx:8888/'
VITE_API_BASE_PATH='/api/'
含义:axios 默认请求会变成 https://你的域名/api/...,由 nginx 转发到真实后端。
改完后需要 重新执行 pnpm run build:pro,再部署 dist-pro。
怎么改:
.env.pro文件
# 接口前缀
VITE_API_BASE_PATH='http://xxx.xxx.xxx.xx:8888/'改成
VITE_API_BASE_PATH=/api
这样打包后,axios 的 baseURL 会变成当前站点下的 /api/,例如:https://你的域名/api/xxx,不再写死 139.159...。
你本地还要做两步
- Nginx 必须配好把
/api/转到你们真实后端(例如原来的http://xxx.xxx.xxx.xx:8888/),不配好页面会请求 404。 - 重新打生产包(改 env 只有重新 build 才会进产物)
pnpm run build:pro
怎么确认改对了
浏览器 F12 → Network,看接口地址应是 /api/...(同源路径),而不是带 http://139.159... 的绝对地址。

8万+

被折叠的 条评论
为什么被折叠?



