mmc*_*ole 18 css asp.net-mvc query-string
如果您查看Stackoverflow.com的源代码,您会看到对其css文件的引用是:
<link href="/Content/all.min.css?v=2383" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
这是如何完成的,以便他们可以通过查询字符串传递一个版本并提供正确的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);
}
Run Code Online (Sandbox Code Playgroud)
并以这种方式在MasterPage中调用此方法:
<link href="<%= this.ResolveClientUrl("~/CSS/style.css") %><%=CacheBreaker.GetBreaker("~/CSS/style.css") %>"
rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
这样你的浏览器就不会缓存 css 文件。使用版本号很方便,因为 css 文件在每个版本中都可能发生变化。
这不是调用正确的 css 文件的方法。文件始终是相同的,但版本号会让您的浏览器产生不同的想法并再次获取它。
| 归档时间: |
|
| 查看次数: |
14813 次 |
| 最近记录: |