React Router路由在Netlify部署后失效,显示404页面求助
解决Netlify部署React Router路由404问题
问题原因
本地开发时,React开发服务器会自动把所有路由请求转发到index.html,由React Router处理路由逻辑。但Netlify作为静态文件托管服务,默认会尝试寻找对应路由路径的物理文件,找不到就返回404页面。
解决方案
你有两种配置方式可选:
方式1:创建_redirects文件
在项目根目录新建名为_redirects的文件(注意开头的下划线),写入以下内容:
/* /index.html 200
这个规则会告诉Netlify,将所有路径的请求都重定向到index.html,交给React Router处理路由。
方式2:创建netlify.toml配置文件
在项目根目录新建netlify.toml文件,写入以下配置:
[[redirects]] from = "/*" to = "/index.html" status = 200
作用和_redirects文件一致,是Netlify的另一种配置方式,适合需要更多部署配置的场景。
注意事项
- 确保上述文件被包含在构建产物中:如果你的构建工具(比如Vite、Create React App)默认会把根目录的文件复制到构建输出目录(如
dist或build),则无需额外操作;如果没有,需要在构建脚本中添加复制这些文件的步骤。 - 配置完成后重新部署项目到Netlify,即可正常访问
/chat、/settings、/upload等路由。
内容的提问来源于stack exchange,提问作者Muneeb
相关产品推荐
相关产品推荐

