私は単一のページWebアプリケーションでReactとReact Routerを使用しています。私はクライアントサイドのレンダリングを行っているので、静的なファイル(HTML、CSS、JS)をすべてCDNで提供したいと思います。 Amazon S3を使用してファイルをホストし、Amazon CloudFrontをCDNとして使用しています。React Router + AWSバックエンド、SEOの方法
ユーザが/css/styles.cssを要求すると、ファイルは、S3はそれを楽しめそう存在します。 ユーザが/ foo/barを要求すると、これは動的URLであるため、S3はhashbang:/#!/ foo/barを追加します。これはindex.htmlに役立ちます。私のクライアント側では、私のURLがきれいなので、私はhashbangを削除します。
これはすべて私のユーザーの100%にとって素晴らしい作品です。
- すべての静的ファイルは、動的URLがindex.htmlを(私の単一ページのアプリケーション)を提供/#!/ {...}にルーティングされますCDN
- を介して提供されている
- 私のクライアント側URLは、問題は、Googleがウェブサイトをクロールしないことである
かなり再び問題
あるのでhashbangを削除します。彼らはリンクの束を参照してください
- Googleの要求/
- 例えば、:ここではなぜですFOO /バー
- Googleのリクエスト/ fooの/バー
- /に彼らは、彼らがhashbangを削除し、要求/
はなぜです/#!/ fooの/バー(302が見つかりました。)
< /暴言>
、2016年だ私が何か間違ったことをやっていますか? S3がパスを認識できないときにindex.htmlを提供するには、より良い方法がありますか?すなわちCDNを有する全体目的を無効にするので、これらのパスを処理するために、ノードサーバの設定
は正しい解決策ではありません。
In this thread React RouterのトップコントリビューターMichael Jacksonは、「Thankfully hashbangはもはや普及していません」と述べています。どのように私の設定を変更して、hashbangを使わないようにしますか?あなたはSEOフレンドリーウェブサイトを作りたいとき
これは私がやったことです、ちょっとハッキーですが、それは動作します。投稿ありがとう!!! –