【解決済み】更新されない!!困った!!Status Code:200 OK (from ServiceWorker)" in Chrome
問題
スコープの範囲を間違えて本来キャッシュしたくないものまでService Workerが返しているようだ。
APIとかも更新されないし、
デプロイしたmain.jsも更新されない
対応
どうでもいいから取り敢えず即座にキャッシュを無くして反映してほしい。
元に戻したい。
一番早いのは
登録されているswを登録削除にすること
記述次第で全てのキャッシュを消すこと
これを置き換えて一旦消す
ServiceWorkerで登録されたjs(以下sw.js)に変更がある場合にブラウザはinstallをします。
これはSPAではないページの場合、別ページに遷移した時発火します
注意点
・sw.js内でエラーが起きていないこと
・以前のsw.jsと変更があること
です
最近あったのはdev環境などで認証をしている場合、SW内のfetchイベントでエラーを吐いていて更新されないというのがありました
認証を外して開発しなくてはいけないかもしれません。
またその場合
をつけること
ServiceWorkerはCache-Control: max-age=にしたがって登録したsw.jsを更新しますが
例外的に24時間以上経つとサーバーに更新がないかブラウザは自動的に問い合わせます
sw.js自体はキャッシュされないので
これは例えば
Cache-Control: max-ageに1年、1weekとしても問い合わせます
なので即座にinstallしてほしい場合
max-age=0
などにするとすぐ反映されます
後ほど誰でもわかるServiceWorkerの記事書きます