反应刷新后路由未定义

Ada*_*rsh 1 javascript reactjs react-router-dom

应用程序.jsx

<Router history={history}>
      <>
        <Switch>
          <Route path="/" exact component={HomePage} />          
          <Route path="/test/:id" exact component={TestPage} /> 
          <Route component={NotFound} />         
        </Switch>
      </>
</Router>
Run Code Online (Sandbox Code Playgroud)

render() 内的 HomePage.jsx

<Link to="/test/1" >Test link</Link>
Run Code Online (Sandbox Code Playgroud)

当我单击链接时,页面成功地将我重定向到http://localhost:8080/test/1,我可以看到该页面,但如果我单击刷新,页面就会消失,我只能看到空白屏幕,如果我想要从外部访问它,即如果我直接在浏览器上输入相同的网址,我看不到该页面,它是空白的。如何在刷新时管理它并从外部访问它?

我在刷新时收到控制台消息

错误

tud*_*ely 5

问题是应用程序无法从第二个网址加载 main.js 脚本(它尝试从 /test/main.js 加载它)。您需要使用绝对路径来加载/而不是/test

将您的脚本标记替换为这个标记(从 /main.js 加载它): <script type="text/javascript" src="/main.js">

您可以参考这个答案以获得更详细的解释:/sf/answers/1682016941/