如果您查看Stackoverflow.com的源代码,您会看到对其css文件的引用是:
这是如何完成的,以便他们可以通过查询字符串传递一个版本并提供正确的CSS文件?
本文(PHP/.htaccess示例)解释了它背后的想法.基本上,您可以将上次修改文件的时间戳附加到文件名,但仍然可以提供原始文件.这样,每次保存新版本的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); }
并以这种方式在MasterPage中调用此方法:
<%=CacheBreaker.GetBreaker("~/CSS/style.css") %>" rel="stylesheet" type="text/css" />