我将react.js应用程序上传到服务器。我正在使用Nginx服务器。应用程序运行正常。但是,当我转到其他页面并刷新时,网站无法正常工作。显示404找不到错误。
我该如何解决。
谢谢。
当您的react.js应用加载时,路由由前端处理react- router。例如说您在http://a.com。然后在页面上导航到http://a.com/b。此路由更改在浏览器本身中处理。现在,当您刷新或打开http://a.com/b新标签中的网址时,请求将转到您nginx的特定路由不存在的地方,因此您得到404。
react.js
react- router
http://a.com
http://a.com/b
nginx
为了避免这种情况,您需要为所有不匹配的路由加载根文件(通常为index.html),以便nginx发送该文件,然后由浏览器上的react应用处理该路由。为此,您必须进行以下更改nginx.conf或sites- enabled适当更改
nginx.conf
sites- enabled
location / { try_files $uri /index.html; }
这告诉nginx寻找指定的$uri,如果找不到,则将其发送index.html回浏览器。
$uri
index.html