CSSを変更してディプロイしてもページの体裁が変わらない。ブラウザでF5キーで強制リロードすると体裁が変わる。と、デザイナから報告あり。たぶんブラウザのキャッシュに関係した問題。
まずはHTMLのMETAタグにキャッシュ絡みの記述が無いか探すが見つからず。
次はHTTPレスポンスのダンプ。
http://example.com/css/styles.css
1 2 3 4 5 6 |
Cache-Control:"public, max-age=315360000" Date:"Wed, 10 Feb 2016 19:05:33 GMT" Etag:""56b913a1-b8c4"" Expires:"Thu, 31 Dec 2037 23:55:55 GMT" Last-Modified:"Mon, 08 Feb 2016 22:16:01 GMT" Server:"nginx/1.4.1" |
http://example.com/images/pic1.jpg
1 2 3 4 5 6 |
Cache-Control:"public, max-age=315360000" Date:"Wed, 10 Feb 2016 19:09:42 GMT" Etag:""56abfd63-e04d"" Expires:"Thu, 31 Dec 2037 23:55:55 GMT" Last-Modified:"Sat, 30 Jan 2016 00:01:39 GMT" Server:"nginx/1.4.1" |
Expiresの315360000秒(10年)は長すぎないか。試しにjQueryを調べる。
http://code.jquery.com/ui/1.10.3/jquery-ui.js
1 2 3 4 5 6 7 8 9 10 11 12 |
Access-Control-Allow-Origin:"*" Cache-Control:"max-age=315360000, public" Connection:"keep-alive" Content-Encoding:"gzip" Content-Type:"application/javascript; charset=utf-8" Date:"Wed, 10 Feb 2016 19:09:00 GMT" Etag:""54499a48-6a684"" Expires:"Thu, 31 Dec 2037 23:55:55 GMT" Last-Modified:"Fri, 24 Oct 2014 00:16:08 GMT" Server:"NetDNA-cache/2.2" Vary:"Accept-Encoding" X-Cache:"HIT" |
jQueryもExpiresは10年だった。だけどjQueryはバージョンごとに凍結されているから、キャッシュを更新する心配はなさそう。自前のコードの場合はそうはいかないよな。鯖管の独断でExpiresを設定された弊害が出てる感じ。クレームしよ。
参考サイト
HTTPヘッダチューニング Expiresヘッダについて | REDBOX Labo
http://blog.redbox.ne.jp/http-header-expires.html
Expiresヘッダーを活用してサイトの読込速度を上げてみる | スマートフォン&モバイルEC事例ノウハウ集|モバイルファーストラボ
http://www.aiship.jp/knowhow/archives/20552