使用Nginx的React应用在使用路由器时不会切换组件

时间:2019-06-24 19:15:56

标签: javascript reactjs nginx react-router

我正在尝试使用nginx部署我的React应用。

我遇到的问题是更改路线时,例如/ about实际上并不会更新前端,而是保留在索引上。

这是我在站点中可用的配置:

server {
  listen 80 default_server;
  server_name server_ip_here;
  root /sites/FrontEnd/React/build;
  index index.html;

  access_log /var/log/nginx/krim.com.access.log;
  error_log /var/log/nginx/krim.com.error.log;

  location / {
      try_files $uri /index.html;
  }
}

这是路由器:

import {Redirect, BrowserRouter as Router,Route,Switch} from 'react-router-dom';

<Router>
      <CookieConsent buttonText="Accept">
      </CookieConsent>

      <Switch>
        <Route exact path="/" component={Home} />
        <Route path="/About" component={Over}/>
        <Route path="/FAQ" component={FAQ}/>
      </Switch>

</Router>

现在,页面索引已加载,但是使用nginx时转到my-ip / About或my / FAQ没有任何作用。

现在使用npm start可以正常工作,此外,使用serve -s build也可以正常工作,所以这似乎是我对nginx配置错误的事情。

我们非常感谢您的帮助,

编辑: 更正后,本地serve可以工作,但在远程vm上也不能工作。

2 个答案:

答案 0 :(得分:0)

您是否尝试过在自己的计算机而不是VM上构建它(假设您正在使用其中一个)?

答案 1 :(得分:0)

我在自己的PC上构建了该软件包,然后将其上传到了vm,现在可以正常工作了。