React 路由器哈希历史记录

shu*_* AK 1 reactjs

我正在研究 hashHistory 与 browserHistory 并坚持“哈希历史记录不需要任何服务器端配置”这一点。我对这一点不太明白,请告诉我。

jpu*_*ntd 5

当您设置反应路由器以使用“哈希历史记录”时......

 <Router history={hashHistory}>
Run Code Online (Sandbox Code Playgroud)

...它会在 URL 末尾添加这些看起来奇怪的 # 字符串(哈希字符串)。路由器使用字符串中包含的信息来为所请求的特定页面呈现正确的组件。

如果您不希望哈希字符串出现在 URL 末尾,您可以设置 React-router 来创建看起来像 的真实 URL example.com/some/path。在内部,react-router 将确保渲染该路由的正确组件。

只有一个问题。现在,如果有人访问example.com/some/path您的服务器,将尝试在您的网站目录中查找该页面,而不是将请求交给您的反应路由器。您的服务器不知道如何处理该 URL。

您必须将服务器配置为始终交付您的应用程序,无论传入什么 URL。然后您的应用程序将在浏览器中操作该 URL 以返回正确的页面。这就是为什么当您想要使用时,您还需要在服务器上进行一些配置

 <Router history={browserHistory}>
Run Code Online (Sandbox Code Playgroud)

为了更好看的网址

以下是有关浏览器历史记录(漂亮的 url)和哈希历史记录(# 在 url 中签名)之间差异的一些信息

你不写你正在使用什么服务器。文档中有一些服务器配置示例(nginx、apache) 。


归档时间:

查看次数:

9375 次

最近记录:

8 年,6 月 前