为什么你可以刷新hashHistory上的散列路由,但不能在没有apiFallback的browserHistory上刷新?

时间:2017-06-19 00:35:01

标签: reactjs react-router browser-history

我正在使用react路由器tutorial并且不明白为什么在下面使用hashHistory,你可以在散列路由上刷新而没有任何问题,但是使用browserHistory你需要合并--history-api-fallback。这到底是做什么的?

enter image description here

为什么hashHistory不需要回退?你怎么能直接去哈希路线而不先去索引路线?使用browserHistory,您无法直接转到路线,因为它无法找到呈现页面所需的文件,对吧?但hashHistory怎么做呢?

1 个答案:

答案 0 :(得分:0)

如果您使用hashHistory,则您的服务器只需提供一个网址。例如,您拥有自己的网址网址www.example.com并且网址为hashHistorywww.example.com/#/aboutwww.example.com/#/loginwww.example.com/#/posts等等。所以,您有很多路线,但是只有一个网址:www.example.com

如果您使用browserHistory,则您的服务器需要提供多个网址(根据您的应用路由金额)。例如,您有www.example.com/www.example.com/aboutwww.example.com/loginwww.example.com/posts - 然后您可以配置您的服务器,以便为www.example.com/网址提供您的应用资源。对于所有其他网址(/about/login/posts等),它可以回退到www.example.com/(并为客户提供相同的资产)。如果您不为其他网址启用后备广告,则会收到网页未找到错误(或资产的404错误)。