2017-01-15 8 views
1

私はDjango + Guicorn + Nginxプロジェクトを持っています。私の問題は、EC2の新しい変更を展開した後で、キャッシュをローカルに削除しない限り、新しい変更がブラウザで更新されないということです。私は本当になぜこれが当てはまるのか、この問題を防ぐために私のプロジェクトをどのように実装するのかという手がかりを持っていません。Chromeブラウザにキャッシュされたjavascriptを更新します

+0

一時的な修正は、あなたのキャッシュを無効にするには、次のようになります。これを見てみましょう[リンク](http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development) –

+0

@ JohnF。私はユーザーに製品を配備しており、キャッシュを無効にするように求めることはできませんでした。したがって、生産レベルのソリューションを探しています。 – YAL

+0

キャッシュをローカルで削除するのではなく、ブラウザを再起動すると動作しますか? –

答えて

2

私たちがJSについて話しているのであれば、「キャッシュ・バスト処理」と呼ばれるものをサポートするために資産を正しく束ねていないという問題があります。gulp、webpack、django_assetsなどのフレームワークでは、展開の準備ができたら、ユーザーはキャッシュを削除する必要はありません。たとえば、django_assets/webassetsにバンドルされたJSファイルwill be suffixed with a hash parameterのURLを指定すると、JSファイルの内容が変更されるとURLも変更されます。

同様の理由から、遠い将来の期限切れヘッダーを使用してメディアファイルを送信するようにWebサーバーを構成しました。WebサーバーはExpiresヘッダーを将来何年に設定します。ユーザーのブラウザは、更新されたバージョンを取得しようとすることはありません。

サイトに実際にアップデートを導入するとどうなりますか?結局のところ、あなたの資産の新しいバージョンをダウンロードするようにブラウザに納得させる必要がありますが、新しいバージョンのチェックを気にしないように言いました。この問題を回避するには、アセットが含まれるURLを変更します。

+1

はい、それはトリック+1を行います。これらのキャッシュ無効化フレームワークがインストールされていない場合、OPは一時的な修正としてoffening jsファイルの名前を変更するだけです。 – e4c5

関連する問題