静的オブジェクトの有効期限 expiration-of-static-objects
静的オブジェクト(アイコンなど)は変更されません。 したがって、期限が切れない(妥当な期間)ように、不要なトラフィックを減らすように、システムを設定する必要があります。
これは、次のような影響を与えます。
- サーバーインフラストラクチャからのリクエストをオフロードします。
- ブラウザーがブラウザーキャッシュ内のオブジェクトをキャッシュするので、ページ読み込みのパフォーマンスが向上します。
有効期限は、ファイルの「有効期限」に関する HTTP 規格によって指定されています(RFC 2616 の第 14.21 章「Hypertext Transfer Protocol – HTTP 1.1」などを参照)。この規格では、ヘッダーを使用することで、クライアントがオブジェクトを期限切れになるまでキャッシュできます。対象となるオブジェクトは、指定された期間中はずっとキャッシュ内に維持され、生成元サーバーに対するステータスチェックはおこなわれません。
動的ではなく、時間が経過しても変化しないファイルはすべてキャッシュ可能であり、またキャッシュする必要があります。Apache HTTPD サーバーの設定は、環境により、次のいずれかのようになります。
-
作成者インスタンスの場合:
code language-xml LoadModule expires_module modules/mod_expires.so <Location /libs> ExpiresByType text/css "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/gif "access plus 1 month" </Location>
これにより、中間キャッシュ(ブラウザーキャッシュなど)に CSS、JavaScript、PNG およびGIFファイルを、期限が切れるまで最大 1 ヶ月間保存できます。 つまり、AEMまたは Web サーバーからリクエストする必要はありませんが、ブラウザーのキャッシュに残ることができます。
サイトの他のセクションは、いつでも変更される可能性があるので、1 つのオーサーインスタンス上にキャッシュしないでください。
-
発行インスタンスの場合:
code language-xml LoadModule expires_module modules/mod_expires.so <Location /content> ExpiresByType text/css "access plus 1 day" ExpiresByType text/javascript "access plus 1 day" ExpiresByType image/png "access plus 1 day" ExpiresByType image/gif "access plus 1 day" </Location> <Location /etc/designs> ExpiresByType text/css "access plus 1 day" ExpiresByType text/javascript "access plus 1 day" ExpiresByType image/png "access plus 1 day" ExpiresByType image/gif "access plus 1 day" </Location>
これにより、中間キャッシュ(ブラウザーキャッシュなど)で、CSS、JavaScript、PNG および GIF ファイルを、最大 1 日間クライアントキャッシュに保存できます。この例では、
/content
および/etc/designs
の下にあるすべてについてグローバル設定を示していますが、より詳細に設定する必要があります。サイトの更新頻度によっては、HTML ページのキャッシュも検討できます。妥当な期間は 1 時間です。
code language-xml <Location /content> ExpiresByType text/html "access plus 1 hour" </Location>
静的オブジェクトの設定が完了したら、該当するオブジェクトが保持されているページを選択した状態で request.log
をスキャンして、静的オブジェクトに対する(不必要な)要求がおこなわれていないことを確認します。