2017-08-27 160 views
0

我正要hashHistory VS browserHistory学习和停留在点“不需要任何服务器端的配置哈希历史”。我不明白这一点,请让我知道。阵营路由器哈希历史

回答

2

当你设置反应路由器使用“哈希历史” ......

<Router history={hashHistory}> 

...它在你的网址结尾处增加了这些奇怪的看着#字符串(散列字符串)。路由器使用字符串中包含的信息为请求的特定页面呈现正确的组件。

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

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

您必须将服务器配置为始终提供您的应用程序不管是什么网址进来。然后你的应用程序,在浏览器中,将操作URL返回正确的页面。这就是为什么你还需要在服务器上进行一些配置,当你想使用

<Router history={browserHistory}> 

为更好看的URL

在浏览器历史记录的区别Here is some info(好看的URL)和散列历史(#号在URL)

你不写你所使用的服务器。有一些服务器配置的例子(nginx,apache)in the documentation.