2016-09-13 5 views
1

私は今やReact Routerで作業していましたが、私はhashHistoryを使ってルーティングを処理していました。ある時点で私はbrowserHistoryにアプリを移行しようとしていますが、なぜGoogleの「Fetch as Google」機能がルートルート以外のもの(/)で動作しないのか不思議です。それは何かをレンダリングしていることは明らかです。サーバが処理しないルートではありません。 (下の画像)私はGoogleが、私はもはや?_escaped_fragment_=に対処する必要があることを信じていないように私につながる、deprecated their AJAX crawling schemeを持っていますが、たとえそうであっても、私はGoogleが他のルートをレンダリングするために得ることができないことがわかりhashHistory、_escaped_fragment_、Google

enter image description here

たとえば、サイトはwww.learnphoenix.ioで、レッスンはwww.learnphoenix.io/#/phoenix-chat/lessonsに表示されます。それでも、ウェブマスターのGoogleのFetch as Google機能はホームページにリダイレクトされ、ホームページのみがレンダリングされます。 _escaped_fragment_を使用すると同じ結果になります。

hashHistoryを使用してGoogleが自分のサイトのインデックスを作成する方法はありますか、browserHistoryに切り替えるまで私のホームページのみがインデックスに登録されるということを受け入れるだけですか?

答えて

1

デフォルトでは、GoogleではURLフラグメント(#)を無視しているようです。この記事によると、日付は#!そのフラグメントを使用してさまざまな正規のページを定義できることをgoogleに伝えます。その廃止されることになっているのでHashbangは、再び、ReactRouterによってサポートされていないものの

https://www.oho.com/blog/explained-60-seconds-hash-symbols-urls-and-seo

それは、ショットの価値があります。

より良い選択肢は、弾丸を噛んで、反応ルータでbrowserHistory(pushState)を使用することです。その問題は、サーバーレスの静的なアプリケーションを実行している場合、/phoenix-chat/lessonsのようなパスは404を返します。AWSでは、それにもハックがあります。 404ページをアプリインデックスページに設定する。

http://blog.boushley.net/2015/10/29/html5-deep-link-on-amazon-s3/

ショットの価値が、再び汚い感じ、しかし。うまくいけば、あなたのためにこの答えに価値のあるものがあります!

+0

ええ、それはおそらく私たちが得るほど良いでしょう。私は、あなたが本当にGoogleが懸念している限り、それが文字通り単一のページであることを確認する必要がある単一ページのアプリケーションで推測する。 – samcorcos