Tomcat 9静态部署React应用遇路由空白页,求排查方案
Tomcat 9部署React应用路由空白问题排查
你的配置存在明显问题,核心出在rewrite.config的规则匹配路径上:
问题点
你当前的rewrite.config规则是:
RewriteRule ^/elapp/(.*)$ /index.html [L]
但你的应用上下文路径是/mpk-standalone,规则里的/elapp/和实际路径完全不匹配,导致Tomcat无法将路由请求转发到index.html,React Router也就无法接管路由渲染,最终页面空白。
修正方案
将rewrite.config的规则修改为匹配你的应用上下文路径,两种写法都可行:
- 绝对路径匹配(明确指定上下文):
RewriteRule ^/mpk-standalone/(.*)$ /mpk-standalone/index.html [L]
- 相对路径匹配(因rewrite.config属于当前应用上下文,可简化):
RewriteRule ^/(.*)$ /index.html [L]
其他配置确认
你的其他配置是正确的:
package.json中homepage: "/mpk-standalone"与Tomcat上下文路径一致BrowserRouter的basename='/mpk-standalone'配置正确,确保React Router路由前缀匹配
另外需确保:
- Tomcat已正确加载RewriteValve(你的
context.xml配置没问题) - React build后的所有静态文件都已放置在
Tomcat 9.0\webapps\mpk-standalone目录下,index.html位于该目录根级
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

