可能是重复问题:
CSS在App_Theme文件夹中被浏览器缓存
我看到了 "有没有一种优雅的方法强制浏览器重新加载已缓存的CSS/JS文件?" 但那里的答案使用了PHP,而且它没有解决ASP.Net主题动态注入CSS的问题。
可能是重复问题:
CSS在App_Theme文件夹中被浏览器缓存
我看到了 "有没有一种优雅的方法强制浏览器重新加载已缓存的CSS/JS文件?" 但那里的答案使用了PHP,而且它没有解决ASP.Net主题动态注入CSS的问题。
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());
}
}
}
}
<link href="App_Themes/MyTheme/MyTheme.css?t=634310637798128189"
type="text/css" rel="stylesheet" />
<head runat="server">
,才能访问Header
属性(否则它将为null
)。将以下内容添加到Web.Config的<configuration>
部分中
<location path="App_Themes">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:10" />
</staticContent>
</system.webServer>
</location>
当完成对网站的更改后,请手动更改CSS的名称。