仅在生产中尝试调用 URL 时反应 404

React 404 when attempting to call a URL only in production

在开发中,我有一个 React 网站,它直接调用托管在 Digital Ocean 上的 API。

主要 url 是 http://localhost:3000 并且加载非常好。这包含一系列链接,所有这些链接都重定向到 http://localhost:3000/narrative/[id] 的变体,例如 http://localhost:3000/narrative/4265http://localhost:3000/narrative/1.

如果我在开发过程中尝试重新加载 http://localhost:3000/narrative/4265,那么页面重新加载绝对没问题。同样,如果我打开一个选项卡或新浏览器 window 并直接转到 http://localhost:3000/narrative/4265 页面加载正常。

然而,在生产中,我在重新加载页面或尝试从新选项卡导航到该页面或 window.

时收到 404

我看过以下问题:

我从@jonsharpe 的回答See Building for relative paths 中了解到可以在我的index.js 上使用BrowserRouter。但是我不确定我是否应该将 Route 修改为 Link

  <HashRouter>
    <Navigation />
    <Routes>
      <Route path="/" element={<Home />} />
            <Route path="/search" element={<Search />} />
            <Route path="/narrative/:id" element={<Detail />} />
      <Route path="/about" element={<About />} />
      <Route path="/contact" element={<Contact />} />
    </Routes>

  </HashRouter>

已通过将 --spm 添加到 pm2 serve build 80 命令来修复

建议来自 this answer