[nextjs] 新たなbuild releaseをクライアント側で検知する方法
問題
- クライアントがサイトを表示する
- ページがキャッシュされる
- サーバーが新しいreleaseで更新される
- クライントは古いページをまだ見ている
- クライントは古いページをまだ見ている
- クライントは古いページをまだ見ている
- ...
クライアントがページ更新するまで新しいバージョンのページが表示できない。
buildIdをつかう?
buildIdを使ったところで、キャッシュされていないページへの移動やページ自体の更新がない限りページのキャッシュを見ているはずなので、直接的な解決にならない?
BUILD_IDファイルを見る?
これを使ってbuild
した状態だと
こういう感じでファイルが存在していて、中身がbuildId
。
だが、これを使ってbuild && export
した状態だと
buildId
自体がディレクトリ名(キャッシュから切り離すためなので当たり前)で、BUILD_IDファイルはない。
domを調べればscriptのパスからbuildIdを比較できなくもないが...
質問
なんとかbuildId
をクライアント側で検知して、「ページを更新してください」的なnotificationを出したい。
- build releaseを検知するようなpluginとか探してみたが見つからない
- buildIdをサーバー、クライアント側でスマートに取る方法が見つからない
この辺りに詳しい人を探してます。
0