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

React应用部署后无法加载JS文件及public目录下JSON文件问题求助

问题根因

这两类报错核心是两类配置不匹配导致的:React打包的公共路径配置、部署侧反向代理的路径映射规则。端口访问时服务默认根路径直接指向打包产物目录,路径匹配不会出错,绑定域名后配置不匹配就会触发静态资源加载失败。

分步修复方案

1. 修正打包公共路径配置

  • 若使用Create React App搭建项目:打开根目录package.json,添加配置项 "homepage": ".",如果应用明确部署在域名根路径,也可以直接写完整域名 "homepage": "https://test.project.bg"
  • 若使用Vite搭建项目:打开根目录vite.config.js,在导出的配置对象中添加 base: './',或者配置为域名根路径 base: 'https://test.project.bg/'
    配置修改完成后必须重新执行npm run build生成新的打包产物,用新产物部署才会生效

2. 修正JSON文件的请求路径

不要写固定的绝对/相对路径,用环境变量拼接资源路径,保证不管部署在什么路径下都能匹配到public目录的文件:

  • CRA项目写法:
const jsonPath = `${process.env.PUBLIC_URL}/你的文件名.json`
fetch(jsonPath).then(res => res.json())
  • Vite项目写法:
const jsonPath = `${import.meta.env.BASE_URL}/你的文件名.json`
fetch(jsonPath).then(res => res.json())

3. 调整反向代理配置(以Nginx为例)

确认自定义域名对应的站点配置,根目录指向正确的打包产物文件夹:

server {
  listen 80;
  server_name test.project.bg;
  # 此处路径替换为你项目打包后build(CRA)或dist(Vite)文件夹的绝对路径
  root /www/your-react-project/build;
  index index.html;

  # 解决单页应用路由刷新404问题,同时保证静态资源路径正确匹配
  location / {
    try_files $uri $uri/ /index.html;
  }
}

配置修改后执行nginx -s reload重载配置生效。

4. 验证修复结果

部署新打包产物后打开浏览器开发者工具的网络面板,查看报错的JS文件和JSON文件的请求路径,确认路径和部署目录的层级匹配即可,如果仍有路径偏差,回头调整公共路径配置即可。

内容的提问来源于stack exchange,提问作者ivan angelov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:15:04