Project

General

Profile

Enhancement(機能追加・改善) #4200

古い静的ファイルのキャッシュが意図せず使われないようにする

Added by Youichi Kimura about 2 years ago.

Status:
New(新規)
Priority:
Normal(通常)
Target version:
Start date:
2017-06-05
Due date:
% Done:

0%


Description

Overview (概要)

現状の OpenPNE では、静的ファイル (*.js, *.css など) のキャッシュについて HTTP ヘッダ等による制御を行っておらず、Web ブラウザやプロキシサーバーのデフォルトの動作に委ねられている。

静的ファイルについて Apache のデフォルトの動作では、以下のように Last-Modified, ETag ディレクティブがレスポンスヘッダに出力される。

$ curl --head http://v38.localhost/js/util.js
HTTP/1.1 200 OK
Date: Mon, 05 Jun 2017 08:13:30 GMT
Server: Apache/2.4.10 (Debian)
Last-Modified: Fri, 17 Mar 2017 06:02:37 GMT
ETag: "6a2-54ae6ecb2f7a1" 
Accept-Ranges: bytes
Content-Length: 1698
Vary: Accept-Encoding
Content-Type: application/javascript

#3150-19 で指摘されているように、Google Chrome 58 といった比較的新しいブラウザにおいても静的ファイルの古いキャッシュが問題を引き起こす場合があることから、OpenPNE 側での対処が必要であると考えられる。

なお、 #2287 では Cache-Control: no-store, no-cache, private, max-age=0, must-revalidate, post-check=0, pre-check=0 が出力されるように修正が行われているが、これは symfony を経由しない静的ファイルに対しては適用されない。

Spec (仕様)

Also available in: Atom PDF