我目前在我的项目的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?
<location="Scripts">
部分来为文件夹“脚本”设置clientcache。然后您可以尝试使用此config.GetSection(“ system.webServer / staticContent”,“
Scripts >>”)); 。