コンテキスト:現在、コンテンツ ハッシュの生成時に依存関係も処理することを除いて、パッケージを使用して静的アセットのリビジョンを使用している実稼働アプリケーション (見たい場合はこちら) があります。静的な名前 (例えば、 benches ) を持ち、それらの静的な名前を使用して相互に参照する新しいファイルのセットを生成します。次に、本番環境で Fastly CDN を使用してそれらのファイルを提供するので、NodeJS サーバーは静的アセットに積極的に使用されません。これはうまく機能しています。gulp-rev-all
gulp-rev
goals.js
goals.6a5aa614.js
現在、サービスワーカーを使用してサイトをオフラインで機能させる作業を行っています。昨年、同期ロジックに多くの作業を行ったので、サイトの動的な部分はかなり簡単にオーバーホールできました。しかし、私は自分の静的アセットをどうするかについて少し途方に暮れています。
私はワークボックスを使用すると考えましたが、それはうまくいくようです。しかし、workbox precache
ファイル名を変更するのではなく、キャッシュを破棄するためにクエリを使用しており、両方を行うのはばかげているようです。しかし、バージョン管理された名前の使用をやめた場合、Service Worker をサポートしていないブラウザーでキャッシュを破棄するにはどうすればよいでしょうか?
(別の関連する質問があります。それは、Fastly の応答が SW に対して不透明であり、したがって事前キャッシュに必ずしも適したオプションではないことを考えると、Fastly を使用し続けることは理にかなっていますか?サービスワーカーを使用していません.これは PWA アプローチとは正反対に聞こえます.nginx キャッシュなどを追加する必要がありますか? (これが何であるかはほとんどわかりませんが、何度か言及されているのを聞いたことがあります))
これにはエレガントな解決策が必要なように思えますが、私の理解gulp
は十分に限られているため、何が可能かを知るのは難しく、ServiceWorkersとキャッシングに関する私の理解は十分に限られているため、知るのは困難ですまさに私が欲しいもの。
したがって、私はこの質問について牽引力を得るのに苦労しています:
gulp の静的アセットのリビジョンを ServiceWorker で動作するように適応させるにはどうすればよいですか?
役立つことの 1 つは、他の実稼働アプリケーションがこれを処理する方法の例へのリンクです。