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 回答