React项目部署到Nginx上刷新出现404的问题
原因:在react项目中使用的是Browser-Router
使用create-react-app创建的react应用为单页应用,使用BrowserRouter的话如果刷新页面Nginx会根据页面url来发送数据,但是Nginx服务器中没有关于该路由的配置,导致找不到文件,因而返回404页面。
解决方案
- 配置Nginx,使所有访问重定向到index.html(在location的配置上加一句try_files $uri /index.html),配置完成之后需要命令行运行nginx -s reload重启服务器
- 在项目中使用HashRouter,这一方法一个缺点是不利于SEO,因为是客户端渲染,并且会在url上加一个#符号,具体设置可看业务需求。