通过URL React Router直接访问时显示页面

时间:2020-08-04 10:22:46

标签: reactjs react-router

我构建了一个没有服务器的应用程序。它只是从两个端点提取数据。 当有人尝试访问不是根URL的页面时,他们会收到一条Page not found消息。
我还没有找到一个解决方案,它不涉及编写服务器。我真的希望我能避免这种情况,因为该应用程序确实太简单了,无法使用它。

当我导航到http://url.com/nextPage时,它返回一个Page not found,但是如果我从根http://url.com/导航到那里,则没有任何问题。

我以前没有将应用程序投入生产,因此这是一个意外的问题,但是对于应用程序的工作方式来说,用户能够直接通过URL访问页面也很重要。

我的App.tsx文件。这两页都是直接的React。

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

function App() {
  return (
    <Router>
      <Route
        path='/'
        exact
        component={HomePage}
      />
      <Route
        path='/nextPage'
        component={NextPage}
      />
    </Router>
  )
}

1 个答案:

答案 0 :(得分:1)

由于现在我知道您将Netlify用作托管服务提供商,因此可以在没有自己的服务器的情况下进行操作。 Netlify有很多配置,其中之一是redirects

您可以尝试将以下内容添加到Netlify.toml:

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

或者,您可以创建一个包含以下内容的_redirects文件:

/* /index.html

请参阅以下文档:https://www.netlify.com/blog/2019/01/16/redirect-rules-for-all-how-to-configure-redirects-for-your-static-site/