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