2017-08-27 21 views
0

私はhashHistoryとbrowserHistoryについて調査し、 'ハッシュ履歴はサーバーサイドの設定を必要としませんでした。私はこの点について理解していませんでした、教えてください。リアクタのルータのハッシュ履歴

答えて

2

セットアップ反応-ルータ「をハッシュ歴史」を使用する...

<Router history={hashHistory}> 

...それはあなたのURLの末尾にこれらの奇妙な#文字列(ハッシュ文字列)を追加します。ルータは、文字列に含まれる情報を使用して、要求された特定のページの正しいコンポーネントを表示します。

URLの最後にハッシュ文字列が表示されないようにするには、react-routerを設定してexample.com/some/pathのような実際のURLを作成します。内部的に反応するルータは、そのルートの正しいコンポーネントがレンダリングされることを確認します。

問題は1つだけです。今すぐ誰かがexample.com/some/pathにアクセスした場合、あなたのサーバはあなたの反応ルータにリクエストを渡すのではなく、あなたのウェブサイトのディレクトリでそのページを見つけようとします。サーバーはURLの処理方法を知らない。

URLを入力しなくても常にアプリを配信するようにサーバーを設定する必要があります。ブラウザのアプリケーションは、URLを操作して正しいページを返します。あなたがより良い探してURLをブラウザの履歴の違いに

Here is some info

ため

<Router history={browserHistory}> 

(見栄えの良いURLの)とハッシュ履歴(#記号を使用したいときにも、サーバー上のいくつかの設定が必要になります理由です

あなたはあなたが使っているサーバを書いていません。いくつかのサーバー設定例があります(nginx、apache)in the documentation.

関連する問題