javascript - 使用路由器时,使用 nginx 的 React 应用程序不会切换组件

标签 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 上它也不起作用。

最佳答案

您是否尝试过在自己的机器上而不是 VM 上构建它(假设您使用的是虚拟机)?

关于javascript - 使用路由器时,使用 nginx 的 React 应用程序不会切换组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56742657/

相关文章:

javascript - 阻止恶意推荐网站

javascript - 如何将JQuery easing 实现到这个窗口滚动移动功能中?

javascript - Chrome 扩展程序 : Can I run a game on them?

javascript - React-select 有时不在异步搜索的下拉菜单中显示选项

mysql - 带有树莓派的 Wordpress 主机 - 从网络外部访问时不加载图像

linux - Nginx 默认配置目录

javascript - 移动网站弹出重叠中的年龄验证 Javascript

javascript - ReactJS setState方法: Time updates per second but 'greeting' won't?

reactjs - TS2531 | React useRef - 对象可能未定义

ruby-on-rails - 如何使一个页面可以被两个 url 访问以用于 seo 目的?