我正在使用react路由器tutorial并且不明白为什么在下面使用hashHistory,你可以在散列路由上刷新而没有任何问题,但是使用browserHistory你需要合并--history-api-fallback
。这到底是做什么的?
为什么hashHistory不需要回退?你怎么能直接去哈希路线而不先去索引路线?使用browserHistory
,您无法直接转到路线,因为它无法找到呈现页面所需的文件,对吧?但hashHistory
怎么做呢?
答案 0 :(得分:0)
如果您使用hashHistory
,则您的服务器只需提供一个网址。例如,您拥有自己的网址网址www.example.com
并且网址为hashHistory
:www.example.com/#/about
,www.example.com/#/login
,www.example.com/#/posts
等等。所以,您有很多路线,但是只有一个网址:www.example.com
。
如果您使用browserHistory
,则您的服务器需要提供多个网址(根据您的应用路由金额)。例如,您有www.example.com/
,www.example.com/about
,www.example.com/login
,www.example.com/posts
- 然后您可以配置您的服务器,以便为www.example.com/
网址提供您的应用资源。对于所有其他网址(/about
,/login
,/posts
等),它可以回退到www.example.com/
(并为客户提供相同的资产)。如果您不为其他网址启用后备广告,则会收到网页未找到错误(或资产的404错误)。