我正在使用 React 编写一个用于教育目的的单页应用程序。我的 React-Router v4 BrowserRouter 在 CodeSandbox 上正确处理客户端路由,但不是在本地处理。在这种情况下,本地服务器是 webstorm 内置的 devserver。HashRouter 在本地工作,但 BrowserRouter 不工作。
问问题
80 次
2 回答
1
您很可能在内置的网络服务器 ( localhost:63342
) 上为您的应用程序提供服务,对吗?内部 Web 服务器在使用“绝对”URL(以斜杠开头的 URL)时返回404,因为它提供来自localhost:port/project_name
而不是来自localhost:port
. 这就是为什么您必须确保将所有 URL 从绝对 URL 更改为相对 URL。
无法设置内部网络服务器以使用项目根目录作为服务器文档根目录。但是您可以将其配置为使用 URL http://<host name>:<port>
,例如“主机名”是主机文件中指定的名称,例如127.0.0.1 myhostName
. 请参阅https://youtrack.jetbrains.com/issue/WEB-8988#comment=27-577559。
于 2017-08-30T16:54:59.267 回答
0
解决方案是了解推送状态路由和历史 API 的工作原理。在为使用 HTML5 History API 的单页应用程序提供服务时,必须通过索引页面代理请求。
Webstorm 开发服务器预计不会包含此功能,因此在此线程中提到 Webstorm 是一个错误。
有多个小于 20 行的库可以为我们执行此操作,或者可以很容易地手动编码。
于 2017-09-08T16:13:45.573 回答