[英]How to force CSS refresh when using ASP.NET Themes?
我正在使用ASP.NET主題的網站上工作。 我遇到的問題是我已經更新了CSS文件,但原始文件是由用戶的瀏覽器保存的。 我想知道是否有辦法強制瀏覽器獲取最新的CSS文件。
主題由類似於以下的代碼設置:
private void SetPageTheme()
{
Page.Theme = "ClientA_Theme";
}
我已經看到了類似問題的其他答案,這些問題表明我在CSS文件中附加了一個版本號,例如/CssFile.css?v=1.2.3
有沒有辦法讓我用ASP.NET主題做到這一點?
我有類似的問題; 您可以設置IIS添加一個內容過期標頭的CSS文件,使他們永遠不會緩存,或者您可以使用此提出的解決方案,因此懷疑這里
您還可以為每個頁面添加一個方法,以遍歷page.header中的控件(甚至可能在您的Master.Page!中),執行以下操作:
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);
}
另一種技術是在主題名稱中包含版本號 - 例如MyTheme1_1或類似名稱。 然后,每個版本將從“新”URL加載內容,因此應該為每個用戶再次請求內容。 顯然,這是更多的工作,但每次發布應該是一次,並且沒有你在下面提到的開銷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.