2

急な質問がありました。

file を作成するとしましょうstylesheet.css。このファイルでは:

body {
    background: #000000;
}

ここで、背景色を変更して、このファイルのバージョンを 1.0 にするとします。

body {
    background: #FFFFFF;
}

スタイルシートへのリンクを ?v=1.0 を含むように変更しますか? 古い設定がキャッシュされないように、ブラウザは新しい変更でスタイルシートをもう一度ロードする必要がありますか? また、以前のすべてが正しいと仮定すると、バージョンに基づいて変更をコミットすることをお勧めしますか? だから、スタイルシートに変更を加えて、v2.0. ありがとう!

<link rel="stylesheet" href="stylesheet.css?v=1.0">
4

3 に答える 3

3

URL (クエリ文字列を含む) がブラウザのキャッシュにない場合、新しいファイルが要求されます。

はい、これはバージョン管理を強制するための有効な方法です。

于 2012-08-27T17:51:26.410 に答える
2

ここで説明されているように、これにより、すべてのブラウザーが CSS を完全にリロードするように強制されます。

'?' とは何ですか? Css リンクで行いますか?

答えは言う:

これは、ファイル名に一意性を追加するためのものです。これにより、CSS ファイルを変更するときに余分なビットを変更して、すべてのクライアントがキャッシュされたバージョンを使用するのではなく、CSS をリロードすることを完全に確認できます。

Web サーバーはパラメーターを無視し、通常どおり /Content/all.min.css を提供します。

ちなみに、StackOverflow はこの手法を使用しています。

于 2012-08-27T17:54:27.147 に答える
0

リンクを ?v=1.0 に変更すると、サーバーが設定したキャッシュ メカニズムが上書きされ、ブラウザはスタイル シートの新しい URL を確認し、新しい変更を再ダウンロードして、ユーザーが新しい変更がすぐに表示されます。

クエリ文字列を追加しない場合、ユーザーは Web アプリケーションで構成されたキャッシュ設定に従ってスタイル シートを更新します。これは、構成方法や使用しているフレームワークによって大きく異なる可能性があります。

于 2012-08-27T17:51:35.170 に答える