ASP的静态文件浏览器缓存.. NET Web窗体应用程序

本文关键字:NET Web 窗体 应用程序 缓存 浏览器 静态 文件 ASP | 更新日期: 2023-09-27 18:09:00

我们希望浏览器对网站上某些文件夹(图像/样式/脚本)的内容进行缓存,并设置它们在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));
        }
    }

ASP的静态文件浏览器缓存.. NET Web窗体应用程序

不要认为Application_PreSendRequestHeaders不会为每个静态内容触发。而是使用网络。配置系统。webServer - staticContent - clientCache设置,如下:

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

这将把它设置为7天