Apacheの有効期限設定「ExpiresByType」と圧縮設定「mod_expires」が、JSファイル(JavaScript)に効かない場合にすること




投稿日:

最近、Apacheの設定をしていたら、圧縮もブラウザの有効期限設定もとあるJSファイルにのみ効いていないことが分かりました。その時の修正です。

設定としては、こんな感じです。


【ダメな例】

■ 圧縮設定 mod_expires

   AddOutputFilterByType DEFLATE application/javascript
   AddOutputFilterByType DEFLATE application/x-javascript

■ 有効期限 ExpiresByType

  ExpiresByType application/javascript        "access plus 2 weeks"
  ExpiresByType application/x-javascript      "access plus 2 weeks"


【修正した例】

■ 圧縮 mod_expires

   AddOutputFilterByType DEFLATE application/javascript
   AddOutputFilterByType DEFLATE application/x-javascript
   AddOutputFilterByType DEFLATE text/javascript

■ 有効期限 ExpiresByType

  ExpiresByType application/javascript        "access plus 2 weeks"
  ExpiresByType application/x-javascript      "access plus 2 weeks"
  ExpiresByType text/javascript               "access plus 2 weeks"




そう、それぞれtext/javascriptが抜けていました。


このタイプについては、Firefoxのfirebugなどで確認します。ネットワークのタブでその要素のResponse Headers を確認すると「Content-Type:text/javascript」というように確認できます。


抜けが合った場合はContent-Typeを確認して追加しましょう。