web-dev-qa-db-ja.com

Firebaseホスティング-ブラウザーが新しいデプロイでキャッシュをリセットするよう強制しますか?

create-react-app で構築されたサイトがあり、Firebase Hostingでホストされています。新しいデプロイ後にブラウザキャッシュを更新する必要があることを指定するにはどうすればよいですか。理想的には、最後のデプロイ以降に変更されたページ、アセット、およびスタイルシートのみです。

ブラウザがローカルストレージまたはキャッシュにあるものと比較し、ハードリフレッシュが必要かどうかを判断できるように、デプロイIDにアクセスし、ヘッダーにそれ(または他の一意の識別子)を含める方法はありますか? Firebase Deploying および Full config のドキュメントを確認しましたが、前回のデプロイ時のようにホスティングメタデータにアクセスする方法については言及していません。

Cache-Controlの値をmax-age=[any number]に設定することは、次の展開がいつ行われるかを無視するため、理想的とは思えません(定期的なスケジュールがない限り、最初は不明な場合があります)。

12
Pat Needham

私はそれを考え出した。 このGithubコメント に従ってfirebase.jsonファイルを更新する必要がありました。

{
  "hosting": {
    "headers": [
      { "source":"/service-worker.js", "headers": [{"key": "Cache-Control", "value": "no-cache"}] }
    ]
  }
}
26
Pat Needham