部署React应用到Netlify时Fetch请求返回404页面未找到求助
解决Netlify部署React后Fetch请求返回"Page not found"的问题
1. 修正Fetch请求的目标地址
确保代码里的Fetch请求使用完整的后端绝对地址,不要用本地开发时的相对路径。比如本地用/api/login,部署后要改成https://emptychat-backend.onrender.com/api/login这类完整URL。
- 建议用环境变量区分开发/生产环境:在项目根目录创建
.env.production文件,写入REACT_APP_API_URL=https://emptychat-backend.onrender.com,代码里通过process.env.REACT_APP_API_URL + '/login'拼接请求地址,避免硬编码出错。
2. 确认_redirects文件的位置和格式
- 必须把
_redirects放在React项目的public目录下,Netlify才会自动读取该文件。 - 文件内容格式要准确,确保分隔符是至少两个空格或制表符,内容为:
/* /index.html 200
3. 配置后端CORS跨域权限
前端在Netlify域名,后端在Render域名,跨域请求需要后端开启CORS:
- 如果后端是Node.js/Express,安装
cors包后添加配置:const cors = require('cors'); // 上线建议指定前端域名,测试可临时允许所有域名 app.use(cors({ origin: "https://bidimdepru.de" })); - 部署修改后的后端代码到Render,重启服务让配置生效。
4. 查看服务日志排查问题
- 登录Netlify后台,进入站点的部署日志或函数日志,检查请求是否被正确处理,有无报错信息。
- 登录Render后台,查看后端服务的日志,确认请求是否到达后端,是否被拒绝。
5. 检查Netlify重定向规则冲突
进入Netlify后台的Site settings > Redirects and rewrites,查看所有生效的规则,确保没有其他规则覆盖你在_redirects里的配置。
内容的提问来源于stack exchange,提问作者Zxmod51
相关产品推荐
相关产品推荐

