You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React项目package.json配置axios代理开发正常,build后serve部署请求返回index.html

问题原因

  • package.json 中配置的 proxy 字段仅在 React 开发模式(yarn start 启动的 Webpack DevServer 环境)下生效,项目 build 后生成的是纯静态资源包,serve 作为静态文件服务器不会读取和生效 package.json 里的代理配置。
  • 返回状态码200且内容为 index.html 是单页应用的常规 fallback 逻辑:静态服务器匹配不到 /cs122b_backend/api/movieList 对应的静态资源时,会默认返回 index.html 用来支持前端路由,所以不会触发404状态码。

解决方案

本地测试 build 产物场景

  1. 优先修改 axios 请求写法,删除写死的域名端口,改为相对路径:
await axios.get('/cs122b_backend/api/movieList').then(
// 原有逻辑不变
)
  1. 方法1:给 serve 配置代理规则,将指定前缀的请求转发到后端地址,启动命令改为:
    serve -s build --proxy http://localhost:8080
  2. 方法2:如果后端已经配置了跨域权限,直接把 axios 请求的 baseURL 改为后端地址,不走前端代理即可:
    await axios.get('http://localhost:8080/cs122b_backend/api/movieList')

生产部署场景

在你使用的 Web 服务器(Nginx、Caddy 等)中配置反向代理规则,将所有 /cs122b_backend 前缀的请求转发到后端服务地址,其余请求返回 index.html 即可。比如 Nginx 参考配置:

location /cs122b_backend {
    proxy_pass http://你的后端服务地址;
}
location / {
    try_files $uri $uri/ /index.html;
}

内容的提问来源于stack exchange,提问作者Zihao Han

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:06:03