如何修复在create-react-app中找不到的404

时间:2019-02-10 06:11:50

标签: reactjs create-react-app

当我直接访问'https://xyz/login'时,它显示错误'404 not found',但从主页('https://xyz/login')注销后将其重定向到'https://xyz/'。
部署我的create-react-app后,此问题开始。我们使用nginx服务器进行部署。

2 个答案:

答案 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优化。