2017-08-27 8 views
0

Ich wurde Studie über HashHistory vs BrowserHistory und stecken auf den Punkt "Hash-Verlauf nicht erforderlich, Server-seitige Konfiguration erforderlich". Ich habe diesen Punkt nicht verstanden. Bitte lass es mich wissen.Reactor Router Hash-Verlauf

Antwort

2

Wenn Sie Setup reagieren-Router 'Hash-Geschichte' verwenden ...

<Router history={hashHistory}> 

... es fügt diese seltsamen # Strings (Hash-Strings) am Ende Ihrer URLs suchen. Der Router verwendet die in der Zeichenfolge enthaltenen Informationen, um die richtigen Komponenten für die bestimmte Seite darzustellen, die angefordert wird.

Wenn Sie nicht möchten, dass die Hashzeichenfolgen am Ende Ihrer URL angezeigt werden, können Sie den react-router so einrichten, dass echte URLs erstellt werden, die wie folgt aussehen: . Intern react-router stellt sicher, dass die richtigen Komponenten für diese Route gerendert werden.

Es gibt nur ein Problem. Wenn nun jemand auf example.com/some/path zugreift, wird Ihr Server versuchen, diese Seite in Ihrem Website-Verzeichnis zu finden, anstatt die Anfrage an Ihren Reaktiv-Router zu übergeben. Ihr Server weiß nicht, wie er mit der URL umgehen soll.

Sie müssen den Server so konfigurieren, dass er Ihre App immer liefert, unabhängig von der URL. Dann wird Ihre Anwendung im Browser die URL manipulieren, um die richtige Seite zurückzugeben. Deshalb werden Sie auch einige Konfiguration auf dem Server benötigen, wenn Sie

<Router history={browserHistory}> 

für besser aussehende Urls

Here is some info auf der Differenz zwischen Browser-History (gut aussehende URLs) und Hash-Geschichte (# Zeichen verwenden möchten in der URL)

Sie schreiben nicht, welchen Server Sie verwenden. Es gibt einige Serverkonfigurationsbeispiele (nginx, apache) in the documentation.

Verwandte Themen