1週間ApacheでJSファイルのCache-Controlを設定しましたが、ブラウザを確認するとCache-Controlにキャッシュが表示されません。どこで構成がありませんか?
以下はApacheでの設定です。
<ifModule mod_headers.c>
<filesMatch "\.(html|htm|png|js|css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
</ifModule>
ブラウザからヘッダーをリクエスト
Request URL:http://test.com/Script.js?buildInfo=1.1.200
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
**Cache-Control:no-cache**
Connection:keep-alive
Host:test.com
Pragma:no-cache
Referer:http://test.com/home.jsp
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/37.0.2062.120 Safari/537.36
Query String Parametersview sourceview URL encoded
buildInfo:1.1.200
Response Headersview source
Cache-Control:max-age=2592000
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/javascript
Date:Sun, 12 Oct 2014 16:17:46 GMT
Expires:Tue, 11 Nov 2014 16:17:46 GMT
Last-Modified:Tue, 07 Oct 2014 13:28:08 GMT
Server:Apache
Transfer-Encoding:chunked
Vary:Accept-Encoding
答え1
Debian を想定してヘッダモジュールを有効にする必要があります。
sudo a2enmod headers
その後、変更を適用するにはApacheを再ロードまたは再起動する必要があります。
sudo service apache2 reload
これがうまくいかない場合は、設定のさまざまな部分がWebルートで提供されている.htaccessなど、Cache-Controlディレクティブをオーバーライドすることもできます。
また、Apacheがサーバー構成に大文字を受け入れるかどうかはわかりません。おそらく大文字Iを使用する必要があります。 Apacheが大文字を認識しない場合、再起動時にエラーが表示されます。
答え2
Cache-Control:no-cache
単独では表示されず、アプリケーションによって生成されます。
Apacheで設定されているかどうかにかかわらず、アプリケーションから返されたすべてのエントリはデフォルト値を上書きします。
したがって、@MartinOlikaの回答に加えて、アプリケーションも確認する必要があり、必要に応じてアプリケーションレベルで必要な構成を実行できます。