Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Reactjs 使用webpack时直接加载路由_Reactjs_Webpack_React Router - Fatal编程技术网

Reactjs 使用webpack时直接加载路由

Reactjs 使用webpack时直接加载路由,reactjs,webpack,react-router,Reactjs,Webpack,React Router,我最近开始使用react和webpack,虽然它在大多数方面都很好,但在测试时,该应用程序被呈现到一个iframe中,这使我无法直接加载非根路由。所以如果我想测试http://localhost:8000/#/signin我无法加载该url,但我必须加载基本url并单击其中指向登录页面的链接(或者至少这是我发现唯一有效的方法) 有更好的方法吗 这里有一个非常简单的解决方案。从那以后有什么变化吗?你的意思是这可以工作:localhost:8000/webpack dev server/ 以下措施也

我最近开始使用react和webpack,虽然它在大多数方面都很好,但在测试时,该应用程序被呈现到一个iframe中,这使我无法直接加载非根路由。所以如果我想测试
http://localhost:8000/#/signin
我无法加载该url,但我必须加载基本url并单击其中指向登录页面的链接(或者至少这是我发现唯一有效的方法)

有更好的方法吗


这里有一个非常简单的解决方案。从那以后有什么变化吗?

你的意思是这可以工作:localhost:8000/webpack dev server/

以下措施也应该奏效:

  • localhost:8000/webpack dev server/index.html
  • localhost:8000/webpack dev server/index.html/#/sign
在没有iframe的情况下,这些应该可以工作:

  • localhost:8000/index.html/#/sign
  • 本地主机:8000/#/sign

如果这不起作用,为什么不右键单击指向登录页面的链接,复制链接地址并将其粘贴到浏览器中?

解决方案似乎是加载包含您正在测试的网页包路径和哈希的url。
http://localhost:8000/webpack-开发服务器/#仪表板
。这必须手动完成,因为应用程序中的任何链接都不包含
webpack dev server
路径


这允许在需要时偶尔硬加载页面,但允许webpack在可能的情况下执行大部分热加载。

#/sign
是根路由。散列以及散列之后的任何内容都不会发送到服务器。您粘贴的URL被视为
http://localhost:8000/
到您的服务器。是的,我知道,但是React应该检测#/signin散列,并呈现包含signin组件的相应路由(在不使用webpack时也是如此)。React不提供路由。你是在用类似的东西吗?对不起,我应该提一下。是的,我使用的是react-router。你说得对,URL可以硬加载。也许这是一个chrome的东西,但如果我手动更改url并单击enter,它不会更改,但如果我使用cmd-r,它将加载路由。然而,这个问题仍然存在,因为当我点击像
localhost:8000/#/foo
这样的链接时,浏览器的url没有改变。这使得开发很难让我手动设置浏览器url。使用webpack有助于防止大量的完整页面重新加载,但不是全部。问题是链接不包含webpack dev服务器路径吗?我的链接是用react router链接组件创建的。对于您发布的第二组链接,它们确实有效,但使用它们会丢掉webpack的所有好处(无需aync重新加载文件)。至于复制链接并将其粘贴到浏览器中,我并不是说什么都不起作用,我是说当你不得不一直硬加载时,生产率就会下降。我认为不可能在开箱即用的情况下做你想做的事情。当应用程序在iframe中运行时,它不会更新浏览器url或历史记录。我不明白的是,为什么在测试应用程序时需要webpack进行异步重新加载。我希望异步重新加载只在开发过程中有用。当我说测试时,我指的是在开发过程中手动测试。