当我直接访问'https://xyz/login'时,它显示错误'404 not found',但从主页('https://xyz/login')注销后将其重定向到'https://xyz/'。
部署我的create-react-app后,此问题开始。我们使用nginx服务器进行部署。
答案 0 :(得分:0)
在BrowserRouter中设置基本名称。
<BrowserRouter basename='/xyz'>
<Route exact path='/' />
</BrowserRouter>
答案 1 :(得分:0)
在服务器计算机上的 VIM 或 nano 中任意编辑nginx / sites-available / default。
vi /etc/nginx/sites-available/default
nano /etc/nginx/sites-available/default
在下面更改
location / {
try_files $uri $uri/ =404;
}
到
location / {
try_files $uri $uri/ /index.html;
}
但是从首页('https:// xyz /')注销后,它将我重定向到'https:// xyz / login'。
您可以通过注销按钮访问登录,因为“ create-react-app”和BrowserRouter仅处于活动状态,并且可以从/即首页进行路由。如果转到/ someLink,则服务器不知道如何处理它,那么它将读取一条规则以转至404错误。上面的代码将所有请求更改为始终访问您的主页,这样BrowserRouter可以从那里获取它。
如果您想了解更多有关该问题的信息,请查看以下问题: Discussion
边注:SEO明智的做法是,Google仍会抓取SPA,但是请检出https://www.npmjs.com/package/react-snapshot以进行SPA优化。