多くの人 (1 万人以上) が、定期的にクライアントのサイトに戻ってきて、私たちが構築、改善、ホストしている Web アプリを使用しています。アプリの改善と進化に伴い、Web アプリの JavaScript に対して下位互換性のない更新をかなり頻繁に行ってきました。デプロイ中、javascript は縮小されて 1 つのファイルに連結され、require.js によってブラウザにロードされ、Amazon S3 にアップロードされてホストされます。ファイル名と URL は現在、更新中にまったく変更されません。先週、私たちは Web アプリに主要なリファクタリングを展開し、一部の人々、特に Firefox でアプリが機能しなくなったという報告をいくつか (多くはありませんが) 受け取りました。キャッシングの問題のようでした。テストでは、最初はいくつかのブラウザーで確認できましたが、1、2 回更新すると消えたように見えました。
S3 に (同じ名前の) JavaScript ファイルの新しいバージョンをデプロイするブラウザ キャッシュの影響がどのような影響を与えるのか、また、この状況がキャッシュの無効化や S3 のヘッダーなどの操作を正当化するものなのかどうか、本当にわからないことに気づきました。誰かがこれを処理するのを手伝ってくれますか? ブラウザーが新しいバージョンの JavaScript ファイルをすぐに取得できるようにするために、展開中に実行する必要があるアクションはありますか? そうでない場合、javascript とサーバー API が同期されずに失敗するリスクがあり、ここで発生したと思います。
問題があるかどうかはわかりませんが、サイトのサーバーは Django を実行し、アプリと DB は Heroku にデプロイされています。静的ファイルは、Django の collectstatic コマンドを介して S3Boto を使用して S3 にデプロイされます。