操作
Enhancement(機能追加・改善) #4200
未完了古い静的ファイルのキャッシュが意図せず使われないようにする
開始日:
2017-06-05
期日:
進捗率:
0%
予定工数:
説明
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 (仕様)¶
操作