Netlify子目录部署下的端点重定向失效问题
Netlify子目录部署React项目的重定向修复方案
问题根源
你部署在Netlify的apuro-frontend/子目录下,原来的重定向规则/* /index.html 200指向的是站点根目录的index.html,但你的React项目实际入口文件在/apuro-frontend/index.html,规则匹配不到正确路径,所以失效。另外CRA项目在子目录部署必须配置homepage,否则静态资源和路由也会出问题。
三种配置方式的修正方法
1. 修正_redirects文件
把规则改成包含子目录的路径:
/* /apuro-frontend/index.html 200
- 放在
public/目录的话,CRA构建时会自动复制到build/;如果是手动生成在build/目录,确保内容和上面一致。
2. 修正package.json的build脚本
更新生成_redirects的命令:
"scripts": { // ...其他脚本 "build": "react-scripts build && echo '/* /apuro-frontend/index.html 200' | cat >build/_redirects ", }
3. 修正netlify.toml配置
调整to字段指向子目录下的入口文件:
[[redirects]] from = "/*" to = "/apuro-frontend/index.html" status = 200 force = true # 开启force可以确保规则优先执行
必须补充的CRA配置
在package.json里添加homepage字段,保障路由和静态资源路径正确:
"homepage": "/apuro-frontend/"
验证步骤
重新执行构建并部署后,访问https://apuro-branch-main.netlify.app/login应该会正确触发重定向,由React路由接管页面渲染。
内容的提问来源于stack exchange,提问作者dimitri.marinho
相关产品推荐
相关产品推荐

