Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在react中刷新后未定义路由_Javascript_Reactjs_React Router Dom - Fatal编程技术网

Javascript 在react中刷新后未定义路由

Javascript 在react中刷新后未定义路由,javascript,reactjs,react-router-dom,Javascript,Reactjs,React Router Dom,App.jsx HomePage.jsx内部渲染 <Router history={history}> <> <Switch> <Route path="/" exact component={HomePage} /> <Route path="/test/:id" exact component={TestPage} /> &

App.jsx

HomePage.jsx内部渲染

<Router history={history}>
      <>
        <Switch>
          <Route path="/" exact component={HomePage} />          
          <Route path="/test/:id" exact component={TestPage} /> 
          <Route component={NotFound} />         
        </Switch>
      </>
</Router>
当我点击链接时,页面成功重定向了我,我可以看到页面,但是如果我单击刷新,页面就消失了,我只能看到空白屏幕,如果我想从外部访问它,也就是说,如果我直接在浏览器上键入相同的URL,我就看不到页面,它是空白的。如何在刷新时管理它并从外部访问它

控制台上的消息我得到刷新


问题是,应用程序无法从您尝试从/test/main.js加载的第二个url加载main.js脚本。您需要使用绝对路径从/而不是/test加载

将脚本标记替换为从/main.js加载该标记:


您可以参考此答案以获得更详细的解释:

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

将脚本标记替换为从/main.js加载该标记:



你可以参考这个答案来获得更详细的解释:

你是如何加载main.js文件的?Hello@tudor.gergely在源代码中我可以看到使用src=/main.jsHello@ssk我不知道在哪里编辑main.js到/main.js我可以看到{名称:minimal webpack react,版本:2.0.0,描述:react和webpack的样板文件,main:index.js,}我应该在这里编辑吗?你是如何加载main.js文件的?Hello@tudor.gergely在源代码中我可以看到使用src=/main.jsHello@ssk我不知道在哪里编辑main.js到/main.js我可以请参阅{name:minimal webpack react,版本:2.0.0,描述:react和webpack的样板文件,main:index.js,}我应该在这里编辑它吗?Hello@tudor.gergely,但是我已经检查了页面的源代码,当它在那里工作时,我也可以看到main.js,它完全正常工作是的,但是当您在上输入/测试或刷新时/测试它将尝试从该url加载您的脚本,因为您使用了相对路径。对脚本使用绝对路径,就像我在答案中向您显示的那样,您不会遇到此问题。好的,我将编辑它,但在哪里可以找到main.js路径,我的网页包类似于以下输出:{filename:'[name].js',路径:CommonPath.outputPath,chunkFilename:'[name].js',}这是要编辑的地方吗?我完全不知道在哪里可以找到main.js的路径。你的index.html文件在哪里?@Adarsh编辑你的主html文件,在那里你定义了标记。在那里更改Hello@tudor.gergely,但是我已经检查了页面的源代码,当它在那里工作时,我也可以看到main.js,它工作得非常好。是的,但是当你nter/test或refresh on/test它将尝试从该url加载您的脚本,因为您使用了相对路径。对脚本使用绝对路径,就像我在答案中向您显示的那样,您将不会遇到此问题。好的,我将编辑它,但在哪里可以找到main.js路径,我的网页包类似于以下输出:{filename:'[name].js',path:commonpath.outputPath,chunkFilename:'[name].js',}这是要编辑的地方吗?我完全不知道在哪里可以找到main.js的路径。你的index.html文件在哪里?@Adarsh编辑你的主html文件,在那里定义了标记。在那里更改
<Link to="/test/1" >Test link</Link>