![同じドメインでホストされている React アプリと WordPress アプリを使用した Cloudfront ディストリビューション - React アプリがキャッシュされたブラウザーで WordPress アプリをレンダリングするにはどうすればよいですか?](https://rvso.com/image/769274/%E5%90%8C%E3%81%98%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%A7%E3%83%9B%E3%82%B9%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%20React%20%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A8%20WordPress%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9F%20Cloudfront%20%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%20-%20React%20%E3%82%A2%E3%83%97%E3%83%AA%E3%81%8C%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%81%95%E3%82%8C%E3%81%9F%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%83%BC%E3%81%A7%20WordPress%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E3%83%AC%E3%83%B3%E3%83%80%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
私は、CloudFront 経由で S3 バケットに React Web サイトをホストするドメインを持っています。また、そのドメインのサブドメインでホストされている WordPress サイトもあり、Web アプリの CloudFront ディストリビューションには、パス パターンで設定された 2 つの動作がありen
、en/*
これらは WordPress サブドメインをオリジンとして設定されています。
この設定は、en/*
シークレット モードでパスにアクセスした場合や、メイン ドメインにアクセスしたことがないブラウザーでは機能するようです。ただし、以前にドメインにアクセスしたことのあるブラウザーでは、ブラウザーは WordPress ページではなく React アプリをレンダリングします。キャッシュを空にしてハード リロードすると WordPress ページが表示されますが、その後もう一度更新すると、Web アプリのレンダリングに戻ります。これは非常に一貫して発生します。
React アプリが、WordPress アプリをレンダリングする URL でレンダリングされると、次の応答ヘッダーが返されます。
x-cache: RefreshHit from cloudfront
また、Reactアプリにアクセスしたことのないブラウザは、で始まるパスにアクセスするとWordPressアプリを正しく読み込みますが/en
、ブラウザがReactアプリにアクセスすると、で始まるパスは/en
WordPressアプリをレンダリングしなくなります。
ここでは一体何が起こっているのでしょうか? また、ユーザーがブラウザのキャッシュを完全にクリアしなくても、WordPress アプリを一貫してレンダリングする方法はありますか? 関連するキャッシュ項目を JavaScript を使用してクリアし、React アプリがそれらのパスの 1 つにあることを検出したときに、React アプリ内からクリアする方法はありますか?
答え1
この問題は、私の CloudFront や S3 の設定とは無関係であることが判明しました。React アプリによって起動されたサービス ワーカーが、起動後にドメインへのすべてのリクエストを傍受することが原因でした。サービス ワーカーを削除すると (不要になったため削除できました)、問題は解決しました。