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