Asp.net
使用 Asp.Net 主題時,如何強制瀏覽器重新載入記憶體的 CSS 文件?
可能重複:
我已經看到“什麼是強制瀏覽器重新載入記憶體的 CSS/JS 文件的優雅方式? ”但是那裡的答案使用 PHP,它沒有解決 CSS 是由 ASP.Net 主題動態注入的事實。
我想我有一個快速而骯髒的解決方案。訣竅是檢查頁眉中的控制項(例如在
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)。