web-dev-qa-db-ja.com

Expires / Cache-Controlヘッダーの問題

Apache 2.2.16を使用しています。

Htdocsフォルダーに次のHTMLファイルがあります。

<html>
 <link media="screen" type="text/css" href="/css/test.css" rel="stylesheet" />
 <body>XXXX</body>
</html>

ブラウザーでCSSファイルキャッシュを作成して、最初のページのロード時を除き、別の要求を行わないようにしています。

ただし、更新を押すたびに、CSSファイルがサーバーから再度読み込まれていることがわかります。サーバーログにファイルの200の応答コードが表示されます。

Httpd.confファイルに次のものがあります。

<LocationMatch "\.(css)$">
 Header set Cache-Control "max-age=2592000"
 Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT"
 Header unset Last-Modified
 Header set Content-Type text/css
 Header unset ETag
</LocationMatch>

以下は、Firebugによって報告された私の応答ヘッダーです。

Date Mon, 29 Nov 2010 10:48:49 GMT
Server Apache/2.2.16 (Win32)
Accept-Ranges bytes
Content-Length 18107
Cache-Control max-age=2592000
Expires Thu, 15 Apr 2020 20:00:00 GMT
Content-Type text/css
Keep-Alive timeout=5, max=97
Connection Keep-Alive

キャッシングヘッダーの設定に関するいくつかの記事を読みましたが、機能するかどうかわかりません。

アドバイスをいただければ幸いです。

2
A_M

私は次を使用します:

ExpiresActive on
ExpiresDefault "access plus 24 hours"
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType text/css "access plus 1 months"
ExpiresByType text/javascript "access plus 1 months"
ExpiresByType application/javascript "access plus 1 months"
ExpiresByType application/x-shockwave-flash "access plus 24 hours"

保守が非常に簡単です。

1
Vergil Penkov