Hom*_*mer 8 css asp.net themes browser-cache
可能重复:
App_Theme文件夹中的CSS在浏览器中缓存
我已经看到" 强制浏览器重新加载缓存的CSS/JS文件的优雅方法是什么? "但答案是使用PHP,并没有解决CSS由ASP.Net主题动态注入的事实.
vol*_*pav 14
我想我有一个快速而肮脏的解决方案.诀窍是检查页眉中的控件(例如在PreRender阶段中),找到指向文件App_Themes夹下的CSS文件的链接并使它们动态化(通过向查询字符串添加一些随机信息).这很可能会告诉浏览器使文件的缓存版本无效.
代码:
protected void Page_PreRender(object sender, EventArgs e)
{
HtmlLink link = null;
foreach (Control c in Header.Controls)
{
if (c is HtmlLink)
{
link = c as HtmlLink;
if (link.Href.IndexOf("App_Themes/", StringComparison.InvariantCultureIgnoreCase) >= 0 &&
link.Href.EndsWith(".css", StringComparison.InvariantCultureIgnoreCase))
{
link.Href += string.Format("?t={0}", DateTime.Now.Ticks.ToString());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
<link href="App_Themes/MyTheme/MyTheme.css?t=634310637798128189"
type="text/css" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)
请注意,您需要<head runat="server">在页面的标记中声明一个,以便能够访问该Header属性(否则它将是null).
| 归档时间: |
|
| 查看次数: |
17089 次 |
| 最近记录: |