我有react .js应用程序到服务器.我正在使用nginx服务器.应用程序运行良好.但当我转到另一页时;刷新,网站不工作.显示404未找到错误.
我该怎么解决这个问题呢.
非常感谢.
我有react .js应用程序到服务器.我正在使用nginx服务器.应用程序运行良好.但当我转到另一页时;刷新,网站不工作.显示404未找到错误.
我该怎么解决这个问题呢.
非常感谢.
当你的react.js
个应用程序加载时,路由将由react-router
在前端处理.比如说你现在http://a.com
岁.然后在页面上导航到http://a.com/b
.此路由更改在浏览器本身中处理.现在,当您刷新或在新选项卡中打开url http://a.com/b
时,请求会转到您的nginx
,其中不存在特定的路由,因此您会得到404.
为了避免这种情况,您需要为所有不匹配的路由加载根文件(通常为index.html),这样nginx
就会发送该文件,然后路由就会由浏览器上的react应用程序处理.要做到这一点,你必须在nginx.conf
或sites-enabled
中适当地进行以下更改
location / {
try_files $uri /index.html;
}
这告诉nginx
查找指定的$uri
,如果找不到,则将index.html
发送回浏览器.(详见https://serverfault.com/questions/329592/how-does-try-files-work)