我正在处理一个使用ASP.NET主题的网站。我遇到的问题是,虽然我已经更新了CSS文件,但用户浏览器中仍保存着原始文件。我想知道是否有方法可以强制浏览器获取最新的CSS文件。
类似这样的代码设置了主题:
private void SetPageTheme()
{
Page.Theme = "ClientA_Theme";
}
我看到其他类似问题的答案建议我在CSS文件名后附加版本号,例如/CssFile.css?v=1.2.3
在ASP.NET主题中我能否这样做?
protected override void OnPreRender(System.EventArgs e)
{
foreach (Control link in Page.Header.Controls)
{
if (link is HtmlLink)
{
HtmlLink cssLink = link as HtmlLink;
//Check if CSS link
if (cssLink.Attributes["type"].Equals("text/css", StringComparison.CurrentCultureIgnoreCase))
{
if (cssLink.Attributes["href"].Equals(String.Format("~/App_Themes/{0}/{0}.css", Page.Theme), StringComparison.CurrentCultureIgnoreCase))
{
//perhaps add the version of your app here.
cssLink.Attributes["href"] += "?v1.1";
}
}
}
}
base.OnPreRender(e);
}