Vite集成React-Router-Dom部署后直接访问子路由报404
这个问题是静态主机(Netlify)处理SPA路由的典型问题——本地开发时,Vite会把所有路由请求转发到index.html,让React Router处理;但Netlify作为静态服务器,直接访问/admin/result这类子路由时,会尝试在服务器上找对应路径的文件,找不到就返回404。
解决步骤
1. 添加 _redirects 文件
在项目的public目录下新建一个名为_redirects的文件,写入以下内容:
/* /index.html 200
这个规则会让Netlify把所有请求都转发到index.html,交给React Router来处理路由逻辑。
2. 或者使用 netlify.toml 配置
如果需要统一管理Netlify的部署配置,可以在项目根目录创建netlify.toml文件,添加:
[[redirects]] from = "/*" to = "/index.html" status = 200
效果和_redirects完全一致,适合有更多部署需求的场景。
补充:你的前端路由配置没问题
看你的App组件代码,已经正确使用了BrowserRouter,并且给父路由(比如/admin/*)设置了通配符,这部分是符合SPA路由要求的,只需要配置Netlify的转发规则就能解决直接访问子路由404的问题。
内容的提问来源于stack exchange,提问作者Alexander Ukwueze
相关产品推荐
相关产品推荐

