参见英文答案 >
What does ‘?’ do in a Css link?
如果你看看Stackoverflow.com的来源,你会看到他们的css文件的引用是:
如果你看看Stackoverflow.com的来源,你会看到他们的css文件的引用是:
<link href="/Content/all.min.css?v=2383" rel="stylesheet" type="text/css" />
解决方法
This (PHP example)文章解释一下你背后的想法。基本上,您可以发现上次修改文件的时间戳。这样,每当您更改CSS时,查询字符串将会更改,“强制”浏览器下载新版本。这对于CSS和JS文件都是有效的。
ASP.NET示例是这样的:
public static string GetBreaker(string fileName) { string cacheBreaker = null; try { if (fileName.StartsWith("~")) { fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,fileName.Remove(0)); } cacheBreaker = File.GetLastWriteTime(fileName).ToFileTime().ToString(); } catch { } return string.IsNullOrEmpty(cacheBreaker) ? string.Empty : string.Format("?cachebreaker={0}",cacheBreaker); }
<link href="<%= this.ResolveClientUrl("~/CSS/style.css") %><%=CacheBreaker.GetBreaker("~/CSS/style.css") %>" rel="stylesheet" type="text/css" />