20

最近更新された特定の背景画像が(キャッシュに保存されている古いバージョンではなく)すべてのブラウザの最後のバージョンに表示されることを確認する方法はありますか?

これは、CSSを呼び出すコード行に触れることを含まないソリューションである必要があります(cssファイル名の後に疑問符とバージョン番号を付けることができます:のよう<link href="styles.css?v=2" rel="stylesheet" type="text/css"/>に、この場合、のこの部分にアクセスできませんコード)

4

4 に答える 4

30

次のアプローチを使用できます。

.button {
    background: url(../Images/button.png?v=1234);
}
于 2012-09-28T11:14:28.290 に答える
1

他のCSSの後に別のCSSルールを追加できます。これは、イメージをロードし、バージョン番号が追加されたイメージを使用するルールをオーバーライドします。

後でロードされるCSSルールの優先度が高いため、メインのCSSと同じセレクターを使用でき、それがオーバーライドされます。

あなたがそれをすることができないならば、あなたはねじ込まれます。新しい画像を確実に取得するには、読み込まれる画像のURLを変更する必要があります。

于 2012-09-28T11:14:51.347 に答える
1

ここに置きたいものはほとんどありません

  1. HTMLページで参照される画像、JS、CSSファイルは、URLに基​​づいてブラウザにキャッシュされます
  2. URLを変更すると、サーバーに新しいリクエストが発行され、最新のリクエストがキャッシュに保存されます。

あなたがする必要があるのはURLを変えることだけです。

cssスタイルシートを変更しましたが、CSS参照用にHTMLを更新する必要があります。

background: url(../Images/button.png?v=1234);

http://www.site.com/css/style.csshttp://www.site.com/css/style.css?ver=002

<link rel="stylesheet" href="css/style.css?ver=002" type="text/css" />
于 2012-09-28T12:04:52.137 に答える
0

を追加することもできますがExpireshtaccess画像が非常に大きい場合は、これに反対することをお勧めします。CSSなしで質問する場合は、次のことを試してください。

<Files "your_bg.jpg">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</Files>
于 2012-09-28T11:15:50.747 に答える