react部署nginx路由页直接访问404解决方案
react打包程序直接上传服务器,部署到 nginx 上后在非根路由下刷新发生 404 Not Found
原因:
其中原因假设现在在浏览器上的url为 39.1.2.3:6000/exam,此时刷新页面时候会去根据浏览器上的url去服务器(nginx)上面请求对应的静态资源,nginx根据location / 的匹配规则在dist文件夹里没有找到对应的静态文件"exam",所以返回404,合理。
此时通过配置try_files来重定向返回index.html文件,也就是回去首页“ / ”,注意,此时你的页面已经刷新过了,此时react-router或者vue-router路由发挥作用,会根据当前的url地址来对应匹配上组件,所以此时url即对应组件,页面重新加载完成,完事。
解决方案:
location / {
try_files $uri /index.html;
}