2017-08-27 159 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.