我正在为教育目的编写一个包含React的单页应用程序。我的React-Router v4 BrowserRouter在CodeSandbox上正确处理客户端路由,但本地不处理。在这种情况下,本地服务器是webstorm内置的devserver。 HashRouter在本地工作,但BrowserRouter不工作。Browserify + WebStorm调试在React-Router v4中断了路由浏览器路由器
正常:https://codesandbox.io/s/j71nwp9469
我正在为教育目的编写一个包含React的单页应用程序。我的React-Router v4 BrowserRouter在CodeSandbox上正确处理客户端路由,但本地不处理。在这种情况下,本地服务器是webstorm内置的devserver。 HashRouter在本地工作,但BrowserRouter不工作。Browserify + WebStorm调试在React-Router v4中断了路由浏览器路由器
正常:https://codesandbox.io/s/j71nwp9469
解决方案是了解push状态路由和历史API如何工作。在提供使用HTML5 History API的单页应用程序时,需要通过索引页面代理请求。
Webstorm dev服务器不包含此功能,因此在此线程中提及Webstorm是一个错误。
有多个库可以为我们做到这一点,或者它可以很容易地手工编码。
你很可能在服务你的应用程序中内置的Web服务器(localhost:63342
),对不对?内部网站服务器在使用'绝对'网址(以斜杠开头的)时返回,因为它服务于localhost:port/project_name
而非localhost:port
的文件。这就是为什么您必须确保将所有网址从绝对网址更改为相对网址。
无法将内部Web服务器设置为使用项目根目录作为服务器文档根目录。但是您可以将其配置为使用类似http://<host name>:<port>
的URL,其中'主机名称'是在主机文件中指定的名称,如127.0.0.1 myhostName
。见https://youtrack.jetbrains.com/issue/WEB-8988#comment=27-577559。