2014-02-28 18 views
0

我的CSS文件,我在我的App_Themes文件/默認/文件夾兩個樣式表:BaseStylesheet.css和NonConvert.css回傳問題緩存猛擊我的App_Themes文件夾

下面是我對我的例子Web窗體的代碼。我將LastModifiedDate添加到我的App_Themes文件夾中每個CSS文件的末尾。更新後,LastModifiedDate會自動更新。

Protected Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender 
    'CACHING - Add a LastModifiedDate to all CSS files in the App_Themes directory 
    Dim link As HtmlLink = Nothing 
    For Each c As Control In Header.Controls 
     If TypeOf c Is HtmlLink Then 
      link = TryCast(c, HtmlLink) 
      If link.Href.IndexOf("App_Themes/", StringComparison.InvariantCultureIgnoreCase) >= 0 AndAlso link.Href.EndsWith(".css", StringComparison.InvariantCultureIgnoreCase) Then 
       link.Href += String.Format("?t={0}", GetLastModifiedDateString(link.Href)) 
      End If 
     End If 
    Next 
End Sub 

Public Shared Function GetLastModifiedDateString(ByVal filePath As String) As String 
    Dim fileInfo As New IO.FileInfo(System.Web.HttpContext.Current.Server.MapPath(filePath)) 
    If fileInfo.Exists Then 
     Return String.Format("{0:yyyyMMddHHmmss}", fileInfo.LastWriteTimeUtc) 
    End If 
    Return String.Empty 
End Function 

這兩種方法工作得很好。 HTML輸出如下:

<link href="../../App_Themes/Default/BaseStyleSheet.css?t=20140228192910" type="text/css" rel="stylesheet" /> 
<link href="../../App_Themes/Default/NonConvert.css?t=20140228175530" type="text/css" rel="stylesheet" /> 

當我添加一個按鈕,做回發,這是我的HTML輸出:

<link href="../../App_Themes/Default/BaseStyleSheet.css?t=20140228192910" type="text/css" rel="stylesheet" /> 
<link href="../../App_Themes/Default/BaseStyleSheet.css?t=20140228192910" type="text/css" rel="stylesheet" /> 

我缺少什麼?在viewstate保存之前,我是否必須刪除querystrings?

回答

0

我和你有同樣的問題。最後我找到了解決方法。 也許你可以嘗試禁用鏈接的viewstat如下:

link.EnableViewState = false