Cloudflare:URLにクエリ文字列がある場合に静的HTMLをキャッシュする
CloudFlareの「新しいユーザー」に関する簡単な質問: 背景:オリジンサーバーによって提供されるHTMLページは変更されません。すべての動的コンテンツは、ページがユーザーのブラウザーにロードされた後、JavaScriptを介してダウンロードされます。JavaScriptによって派生した動的コンテンツは、URLのクエリ文字列に一部依存しますが、クエリ文字列自体は、最初にダウンロードされたHTMLコンテンツには影響しません。したがって、次のURLはすべて、ブラウザでJavaScriptが作用する前に、オリジンからまったく同じHTMLを生成します。 https://www.example.com/private/my-investments?portfolioID=296 https://www.example.com/private/my-investments?portfolioID=325 https://www.example.com/private/my-investments?portfolioID=319 質問:CloudFlareがデフォルトでHTMLをキャッシュしない場合、https://www.example.com/private/my-investments?[anyValue]の単一のキャッシュされたコピーがすべてのユーザーに返されるようにページルールを作成するにはどうすればよいですか??これが私が試したものです: 「すべてをキャッシュ:」「すべてキャッシュ」ディレクティブを使用すると、HTMLがキャッシュされますが(良好)、クエリ文字列全体がキャッシュキーの一部として使用されます(不良)。したがって、ユーザーが次のURLにアクセスした場合... https://www.example.com/private/my-investments?portfolioID=296 ...そして、10秒後に、次のように、別のクエリ文字列で同じURLにヒットします。 https://www.example.com/private/my-investments?portfolioID=325 ... CloudFlareは後者のリクエストをキャッシュMISS(cf-cache-status:MISS)として扱い、オリジンサーバーに再度アクセスします。これは、オリジンから返されたHTMLが両方のURLで同一であるという事実にもかかわらずです。 「IGNORE QUERY STRING CACHING:」「IGNORE QUERY STRING CACHING」オプションを選択することで、この問題を確実に解決できると思いました。ただし、このオプションをページルールで使用すると、HTMLはまったくキャッシュされません。.js、.css、および.pngファイルのみがキャッシュされます。そしてもう一度、私の起源はHTMLデータのすべての呼び出しでヒットします。:( 私は明らかな何かを見逃しているに違いないと感じています。何かご意見は? 更新:私があなたによって実行したいという考えを持っていました。この問題を解決するには、内部URLスキームを変更して、「?」ではなく「#」を使用しますか?したがって、次のようなURLの代わりに... https://www.example.com/private/my-investments?portfolioID=296 ..私は次のようなものを使用します: https://www.example.com/private/my-investments#portfolioID=296 これにより、クエリ文字列パラメーターがCloudFlareにまったく送信されなくなります...どう思いますか? フェストゥス