Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

[nextjs] 新たなbuild releaseをクライアント側で検知する方法

問題

  1. クライアントがサイトを表示する
  2. ページがキャッシュされる
  3. サーバーが新しいreleaseで更新される
  4. クライントは古いページをまだ見ている
  5. クライントは古いページをまだ見ている
  6. クライントは古いページをまだ見ている
  7. ...

クライアントがページ更新するまで新しいバージョンのページが表示できない。

buildIdをつかう?

buildIdを使ったところで、キャッシュされていないページへの移動やページ自体の更新がない限りページのキャッシュを見ているはずなので、直接的な解決にならない?

BUILD_IDファイルを見る?

これを使ってbuildした状態だと

こういう感じでファイルが存在していて、中身がbuildId

だが、これを使ってbuild && exportした状態だと

buildId自体がディレクトリ名(キャッシュから切り離すためなので当たり前)で、BUILD_IDファイルはない。
domを調べればscriptのパスからbuildIdを比較できなくもないが...

質問

なんとかbuildIdをクライアント側で検知して、「ページを更新してください」的なnotificationを出したい。

  • build releaseを検知するようなpluginとか探してみたが見つからない
  • buildIdをサーバー、クライアント側でスマートに取る方法が見つからない

この辺りに詳しい人を探してます。

0

1Answer

Your answer might help someone💌