2009-06-24 17 views

答えて

13

誰もが新しいファイルを再ロードすることを確実にする確実な方法の1つは、URLを変更することです。実際に名前を変更せずにこれを行うための合理的な方法は、ランダムな文字列にタックすることです:

それは絶対になりますナットをクラックするためにハンマーを使用して、これを実行するために存在するすべてのHTTPメカニズムをバイパスし、しかしだ
<link rel='stylesheet' href='/mystyles.css?random=87365835'> 

どこでも働きますが、他のテクニックにはすべて警告があります。

編集: @jitter:リクエストごとに自動的にURLを変更する必要はありません。CSSファイルのタイムスタンプに基づいて設定することもできますし、手動で変更することもできますCSSがリロードされます。

+0

これは一般的なアプローチです - http://stackoverflow.com/questions/438821/what-does-do-in-a-css-link –

+0

も参照してください。しかし、クライアントがロードされるので、サーバーに負荷がかかるいつでも?random = xxxのようなCSSは常に異なっています。ブラウザは変数を使ってURLをキャッシュするはずではないので(IEとFFはありますが) – jitter

+0

これはうまくいきません。ブラウザはURLを理解し、?asdasd = adssad部分をキャッシュしてはいけません。 – jitter

2

あなたは、サーバーのetagsを編集しようとすることができます http://developer.yahoo.com/performance/rules.html#etags

しかし、ユーザーは常に最新になりますように、好ましい方法は、日付やビルド番号と同じように、あなたのCSSファイルの名前を変更することが考えられます。

2

チェックこのソリューションの代わりに、xx.css?ランド= 213213213

What is an elegant way to force browsers to reload cached CSS/JS files?

または "自動バージョン管理" のためのgoogleを使用して、プラスjavascriptやCSSを追加します。または「自動アセット・バージョニング」

get変数を追加することによって、URL部分のパスを変更する自動アプローチを使用します。

関連する問題