9

次のように、更新されたバージョンタグを使用しても、JavaScript がキャッシュされて更新されないという問題があると思いました。

<script type="text/javascript" src="lib/myScript.min.js?v=3"></script>

しかし、問題は私のhtmlファイルがキャッシュされていることにあることに気付きました...そのため、ブラウザは新しいスクリプトファイルがあることさえ知りません。

キャッシュを無効にしたくありませんが、ブラウザに最新の html ファイルがないことを知らせる方法はありませんか? (これは、html ファイルに入れるものですか、それとも apache2 サーバーに入れるものですか?)

4

3 に答える 3

5
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

タグを使用してすべてのブラウザーでキャッシュをオフにしますか?からの回答

于 2012-09-05T10:53:38.427 に答える
3

これらのメタ タグを試すことができます。問題が解決すると思います。

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
于 2012-09-05T10:51:10.267 に答える
2

html で明示的に記述する以外に、実際には 2 つの優れたオプションがあります:ETAGLast-Modified. html ファイルが静的ファイルの場合、apache2 はデフォルトでそのキャッシュの処理方法を認識します。php の場合は、コードで処理するか、php フレームワークを使用する必要があります。

これら 2 つのヘッダーは html で記述されていないため、ブラウザーは HTTP 応答の本文全体をダウンロードする必要がなく、トラフィックが削減されます。したがって、それらを使用することをお勧めします。

少しグーグルが役立つと思います。

ETag または Last-Modified HTTP ヘッダーのどちらが優先されますか?

于 2012-09-05T11:07:41.757 に答える