0

我正在使用 React 编写一个用于教育目的的单页应用程序。我的 React-Router v4 BrowserRouter 在 CodeSandbox 上正确处理客户端路由,但不是在本地处理。在这种情况下,本地服务器是 webstorm 内置的 devserver。HashRouter 在本地工作,但 BrowserRouter 不工作。

正常运行:https ://codesandbox.io/s/j71nwp9469

4

2 回答 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 回答