2

asp.net Web アプリケーションを使用すると、(大きな) .css ファイルと .js ファイルをクライアント ブラウザーにキャッシュして、パフォーマンスを向上させることができます。

しかし、新しいバージョンを展開するたびに、ユーザーから、ページが乱雑に見えたり、javascript エラーでいっぱいだったりするという電話がかかってきます。彼らのブラウザは、変更された .css および .js ファイルを再ダウンロードしなかったことが判明しました。Ctrl-F5 は常にそれを修正します。

アップグレードの展開後に、キャッシュしないように設定せずに (したがって、アプリケーションの速度を低下させずに) 再ダウンロードを強制する方法はありますか?

私はこれを見つけました(展開ごとにすべてのファイルへの参照を手動で変更します): 特定のファイルを強制的にキャッシュで期限切れにするにはどうすればよいですか?

そしてこれ(同じことですが、ページの読み込みごとにチェックサムを計算します): js / cssのバージョン管理を実装する方法についてアドバイスが必要です

しかし、それよりも合理的な解決策があるはずです...?

4

2 に答える 2

4

ファイルにバージョン番号を設定するとうまくいきます。

<script type="text/javascript" src="somefile.js?v=1.0"></script>

そのバージョン番号を「リリース」ごとに変更する限り、ブラウザはそれを新しいファイルと見なします。

これを行うには、グローバル ファイル (構成ファイルなど) にバージョン番号を指定し、必要な各スクリプト/css タグに変数を設定します。

于 2013-07-13T04:03:20.687 に答える
0

最良の方法は、ファイル名にバージョン管理を使用することです。SVN、Microsoft Team Foundation などのコード バージョン管理を使用している場合は、最後のチェックイン番号をファイル名のサフィックスとして使用できます。たとえば、現在のチェックイン番号が 1321 であるとします (またはタイム スタンプyyyy-mm -dd-hh-mm、つまり2015-01-15-17-15 )

したがって、somefile.js は somefile_v1321.js になる 、somefile.js は somefile_v2015-01-15-17-15.js になります。

ここで、ファイル名の変更が非常に多く行われていることに驚かれることでしょう。答えは、リリースが頻繁に行われる場合は、リリース ファイル内の JS および CSS インポート ファイル名を変更できる Ant スクリプトなどのスクリプト言語の使用を検討することです。

新しいデプロイが行われるたびに、リソースにはブラウザーに固有の新しい統一パスが作成されるため、フレッシュ ロードが実行されます。

于 2015-01-15T11:42:38.883 に答える