メディア アイテムへのコンテンツの変更は、ブラウザーにすぐに反映されない場合がある


解説

すでにパブリッシュされているメディア アイテムに新しいコンテンツを添付し、メディア アイテムを再度パブリッシュすると、そのURLを使用してメディアにアクセスしても、コンテンツの変更がブラウザーにすぐに反映されない場合があります。

これは、MediaResponse.MaxAge 設定で指定された時間、メディアがブラウザーにキャッシュされるために発生します。ブラウザーがすでにメディア アイテムにアクセスしている場合、サーバーへのリクエストを実行せず、キャッシュされたバージョンの有効期限が切れるまで、キャッシュからメディア アイテムを取得する可能性があります。

解決策

前回のリクエスト以降にメディア アイテムが変更されたかどうかを、ブラウザーに常に強制的に確認させ、必要に応じて新しいバージョンをダウンロードさせるには、web.config ファイルのMediaResponse.MaxAge 設定を00:00:01に設定する必要があります。これにより、Sitecoreはメディア リクエストのHTTP応答のCache-Control: max-age ヘッダーとExpires ヘッダーを1秒に設定します。

Cache-Control: max-age ヘッダーおよびExpires ヘッダーの目的は、サーバーからのダウンロードの負荷を減らすことだけでなく、サーバーへのHTTP 要求の数を減らすことでもあることに注意してください。したがって、MediaResponse.MaxAge 構成を変更するときは、これを考慮してください。要件によっては、00:00:01よりも高い値を設定することが勧められる場合があります。

また、MediaResponse.MaxAge 設定を00:00:00に設定すると、Cache-Control: max-age ヘッダーとExpires ヘッダーが応答に追加されず、ブラウザーがサーバーに新しい要求を発行するかどうかを独自に決定し、ユーザーによる制御ができなくなります。