Я сейчас использую в 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>
Это было бы хорошо, если бы я хотел кэшировать только несколько папок здесь и там, но у меня есть javascript и css в ряде других мест, которые я также хочу кэшировать и выбрал использовать HttpModule для кэширования этих каталогов там.
Я провел небольшое исследование и наткнулся на эту статью от Microsoft на clientCache, которая показывает мне, как обновить ее в httpModule с помощью c#
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 для этой явной папки?