2

すべてのスタイルシートを次のようにしようとしています:

<link href="style.css?v=1234" rel="stylesheet" type="text/css" />

私が直面している唯一の問題は、現在のリンク タグを取得し、新しい乱数を現在のパスに適用することです。リンクを見つけて適用する方法は問題ないと思いますが、現在の属性を取得してから新しい属性を適用するのが間違っているところです。

$(document).ready(function() {

var randomNum = Math.ceil(Math.random()*2);
// is this the best way?
$("head").find("link").attr("href")+"?v="+randomNum;

// I don't think this works
$('link[rel="stylesheet"]').end()+"?v="+randomNum;

});

キャッシュの問題を経験している人がたくさんいて、これが可能な解決策になると指摘しました.

4

2 に答える 2

5

値をリンクに戻していませんでした。以下のように、関数を使用してリンク値を設定できます。

$("head").find("link").attr("href", function (i, value) {
   return value +"?v="+randomNum;
});
于 2012-12-06T15:52:39.443 に答える
0

新しいファイルでキャッシュの問題が発生している場合は、次のアプローチを試してください。

  • css ファイルにバージョン番号を追加する
  • 新しい CSS ファイルを展開するたびに、バージョン番号を更新します (それへの参照も更新することを忘れないでください)。

そうすれば、読み込んだページに対応する css が常に表示され、ブラウザのキャッシュを引き続き利用できます。

例 style-1.0.css

于 2012-12-06T15:56:56.460 に答える