最近、Apacheの設定をしていたら、圧縮もブラウザの有効期限設定もとあるJSファイルにのみ効いていないことが分かりました。その時の修正です。
設定としては、こんな感じです。
【ダメな例】
■ 圧縮設定 mod_expires
[html]
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
[/html]
■ 有効期限 ExpiresByType
[html]
ExpiresByType application/javascript "access plus 2 weeks"
ExpiresByType application/x-javascript "access plus 2 weeks"
[/html]
【修正した例】
■ 圧縮 mod_expires
[html]
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
[/html]
■ 有効期限 ExpiresByType
[html]
ExpiresByType application/javascript "access plus 2 weeks"
ExpiresByType application/x-javascript "access plus 2 weeks"
ExpiresByType text/javascript "access plus 2 weeks"
[/html]
そう、それぞれtext/javascriptが抜けていました。
このタイプについては、Firefoxのfirebugなどで確認します。ネットワークのタブでその要素のResponse Headers を確認すると「Content-Type:text/javascript」というように確認できます。
抜けが合った場合はContent-Typeを確認して追加しましょう。