簡體   English   中英

ASP.NET Web 窗體應用程序的靜態文件瀏覽器緩存

[英]Static File Browser Caching for ASP.NET Web Forms Application

我們希望瀏覽器緩存網站上某些文件夾中的內容(圖像/樣式/腳本),並將它們設置為保持新鮮狀態 7 天。 此外,我們使用名為 Ektron 的 CMS。

這是我們使用的代碼,關於為什么這不起作用的任何想法?

來自 global.asax

void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    System.Web.HttpCacheability cachelevel = System.Web.HttpCacheability.Private;

    if (Request.FilePath.ToLower().StartsWith("/images") || Request.FilePath.ToLower().StartsWith("/styles") || 
        Request.FilePath.ToLower().StartsWith("/js") || Request.FilePath.ToLower().StartsWith("/scripts"))
    {
        cachelevel = System.Web.HttpCacheability.Public;

        if (cachelevel == System.Web.HttpCacheability.Public) Response.Cache.SetCacheability(cachelevel);

        var staticExtensions = new List<string> { ".js", ".css", ".jpg", ".gif", ".png" };

        if (staticExtensions.Any(ext => Request.FilePath.ToLower().EndsWith(ext)))
        {
            Response.Cache.SetMaxAge(TimeSpan.FromDays(7));
        }
    }

不要認為 Application_PreSendRequestHeaders 不會為每個靜態內容觸發。 而是使用 Web.config system.webServer - staticContent - clientCache 設置,如下所示:

<system.webServer>
 <staticContent>
  <clientCache cacheControlMaxAge="7.00:00:00" cacheControlMode="UseMaxAge" />
 </staticContent>

這會將其設置為 7 天

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM