Firebase HostingでCache-Controlヘッダーを設定する

Firebase HostingでCache-Controlヘッダーを設定する
公開日時

このブログをPWA対応したのに合わせて、Lighthouseでサイトのパフォーマンスについて調べてみた。

最初Performanceの項目が82点だったので対応方法の解説を見ていたところ、jsとcssのキャッシュ時間が1時間になっているので修正せよと書かれていた。

FirebaseHostingの設定はいじっていなかったので、デフォルトで1時間が設定されていた模様。

そこで、[[firebase.json]]にheadersを追加して、jsとcssのキャッシュ時間を1年に設定した。

{
  "hosting": {
    "public": "dist",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ],
    "headers": [
      {
        "source": "**/*.@(js|css)",
        "headers": [
          {
            "key": "Cache-Control",
            "value": "max-age=31536000"
          }
        ]
      }
    ]
  }
}

Gridsomeはビルド時にハッシュ値をつけてくれるようになっているので、長期間キャッシュする設定を入れても古いキャッシュが参照され続けてしまう問題は発生しない。

この対応を入れたところPerformance項目が92点になったのでひとまずはOKとする。

参考


Related #firebase

Firestoreの複合インデックスを削除する

CLI経由で削除する必要があった

Firebase Web SDK v9

_this.auth.addAuthTokenListener is not a function

8.6.5にダウングレードした

Firebase Summit 2021