どのようにキャッシュcss、画像js?
-
21-09-2019 - |
質問
いの画像、css、javascriptを使用したキャッシュされたクライアント側、ブラウザの時の負荷上げます。多くの異なる種類のキャッシュっと混乱しないように気をつけるものを利用するasp.net mvc.
思いが可能となるものとしては、ご使用のブラウザのチェックのための新規または変更されたバージョンのこれらのファイル?
よろしく!
解決
ブラウザは、実際に、自動的にあなたのためにこれの世話をします。あなたが得るためにあなたの方法のうちに行かなければならない彼らに、NOTキャッシュCSS、JS、HTMLとイメージます。
私は、ASP MVCに精通していることではないんだけど、私は、彼らはあなたの作成した動的な出力サーバ側のオペコードキャッシュのですか?
のだ思考をキャッシュするタイプだと思います他のヒント
あなたは、サーバー上のセットのキャッシュ制御ヘッダに必要です。あなたのweb.configファイルでこれを貼り付けることで、これを行うことができます:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
</system.webServer>
この30日のために何を静的に新しいコンテンツのためにもチェックをここでブラウザを言うだろう。
は2番目の質問については、コンテンツへのクエリ文字列を追加するいくつかのメカニズムを提供します。私の現在のプロジェクトでは、圧縮し、ビルドの一部として、JavaScriptとCSSとを兼ね備えています。ページ内のリンクを置くときのように見えます。
<script src="/Resources/Javascript/Combined.js?v=2.2.0.1901" type="text/javascript"></script>
クエリ文字列は、Major.Minor.0.Changeset番号であり、クライアントがそれを再フェッチさせ、我々はビルドを押していつでも変更されます。まったく同じ事は彼らの<link>
要素にスタイルシートで発生します。
@ポールCreaseyと@-サルサの両方が正しいとは、ウェブブラウザが対応キャッシュによるデフォルトでのリンクは同じです。
また、その問題がアップデートする必要がありこれらのファイルとしているという保証はお客様のブラウザのチェックのための最新バージョン。多くの場合れるだけでなくこの後、一定時間経過した作成ができるcrummyユーザー体験です。
多くの質問を求めているこのサイトとして取り扱い方に注意喚起を行うためお客様のブラウザ リフレッシュ、キャッシュ.また、すべての信頼のリンクを変更した場合のファイルの内容です。
使用する前に少々お時間を頂戴パラメータはURLのみに使用し、キャッシングなどの目的:
<script src="/myJavascript.js?version=4"></script>
それを変えるだけのバージョン番号を変更したときに内容を要する力は、クライアント側のリフレッシュala この答え.
私はここに掲載答えるhref="https://stackoverflow.com/questions/936626/how-can-i-force-a-hard-refresh-ctrlf5/6439351#6439351"> Ctrlキー + F5 )にユーザーを必要とするの問題を回避解決のために。
これは、URLが実際の目標である、長いファイルが同じである限り変わらないように、URLのコンテンツ自体のMD5ハッシュを使用しています。ハッシュを計算することは、超高速で、ページのレンダリングが著しく遅くなるされていないので、それは、サーバー上のメモリにキャッシュされています。何もかも全部はマイクロ秒で測定され、そして(スキューバダイバーがの私のサイトに)利点は、これまで素晴らしいされています。彼らは、サーバが生成した私のサイト上じゃないと私はCSSファイルの中から画像を除いたすべての画像、CSSやJSに適用します(まだ。)
これは最高のIISにしたり、設定ファイルで行われます - 。確認してくださいあなたのCSS / JS /画像を無期限に設定されている。
あなたのコードからそれらを参照するとき、私は、例えば、ファイル名にバージョンまたはビルド日付を追加提案script.js?20100120、あなたがそれらを変更するには周りに来ないとき、あなたはそれをキャッシュされているすべてのブラウザから更新を強制的にバージョンを変更する必要がある。
クライアント側のキャッシュは自動的に処理されるブラウザでき 正しく設定されています Cache-Controlヘッダー および設定します。config.のように:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00.00:10:00" />
</staticContent>
</system.webServer>