Vite项目部署Vercel后Proxy失效,请求未转发至正确API
问题根源
Vite的server.proxy是仅针对开发环境的配置,部署到Vercel生产环境后完全不生效,这就是为什么你的请求会落到前端域名上。
解决方案
方案一:用vercel.json配置路由重写
在前端项目根目录创建vercel.json文件,添加以下内容:
{ "rewrites": [ { "source": "/api/(.*)", "destination": "https://ticketify-api.vercel.app/$1" } ] }
这个配置会把前端域名下所有/api/xxx格式的请求,自动转发到后端域名的/xxx路径,和你本地proxy的rewrite逻辑完全匹配。部署时确保这个文件被包含在Vercel的部署包中即可。
方案二:直接使用后端绝对地址(更稳妥)
修改前端代码中的请求路径,把所有/api/xxx替换成https://ticketify-api.vercel.app/xxx。
如果想更灵活,也可以用Vite的环境变量:
- 在前端项目根目录创建
.env.production文件,添加:
VITE_API_BASE_URL=https://ticketify-api.vercel.app
- 前端请求时拼接地址:
// 示例请求 fetch(`${import.meta.env.VITE_API_BASE_URL}/your-endpoint`)
这种方式不需要依赖Vercel的路由配置,逻辑更清晰,也能避免部署时的配置遗漏问题。
额外检查项
你的后端CORS配置里methods包含了"UPDATE",但HTTP标准请求方法是PUT,建议修正为["GET", "POST", "PUT", "DELETE"](按需添加方法),避免出现请求方法不被允许的错误。
内容的提问来源于stack exchange,提问作者Vayun Ekbote
相关产品推荐
相关产品推荐

