通过httpmodule为自定义文件夹添加客户端缓存

问题描述 投票:0回答:1

我目前在我的项目的web.config中使用。

<location path="js">
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="8765:00:00"/>
    </staticContent>
   </system.webServer>
</location>
<location path="css">
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="8765:00:00"/>
    </staticContent>
   </system.webServer>
</location>

如果我只想在这里和那里缓存一些文件夹,但是我在其他许多地方也要缓存并且选择使用HttpModule来缓存这些目录,则在其他地方有javascript和CSS,这会很好。

我进行了一些研究,并在clientCache上遇到了this article from Microsoft,它向我展示了如何使用c#在httpModule中对其进行更新

  using(ServerManager serverManager = new ServerManager())
  { 
     Configuration config = serverManager.GetWebConfiguration("Default Web Site");
     ConfigurationSection staticContentSection = config.GetSection("system.webServer/staticContent");

     ConfigurationElement clientCacheElement = staticContentSection.GetChildElement("clientCache");
     clientCacheElement["cacheControlMode"] = @"UseMaxAge";
     clientCacheElement["cacheControlMaxAge"] = @"8765:00:00";

     serverManager.CommitChanges();
  }

我的问题是,可以使用这种方法指定要缓存的确切文件夹吗?例如,如果我在以下目录中有一个带有javascript的文件夹:siteMap / js如何告诉我的httpModule为该显式文件夹设置clientCache?

c# asp.net iis-7 httpmodule
1个回答
0
投票
例如。如果要通过在web.config中添加<location="Scripts">部分来为文件夹“脚本”设置clientcache。

然后您可以尝试使用此config.GetSection(“ system.webServer / staticContent”,“

Scripts >>”)); 。

© www.soinside.com 2019 - 2024. All rights reserved.