如何在IIS7中为每个文件夹和扩展名configuration静态内容caching?
我想在IIS7中为ASP.NET网站中的静态内容caching设置规则。
我已经看到了这些文章,详细介绍了如何使用web.config
的<clientCache />
元素进行操作:
客户端caching
<clientCache>
(IIS.NET)
将过期或caching控制标题添加到IIS中的静态内容(堆栈溢出)
但是,此设置似乎全局适用于所有静态内容。 有没有办法做到这一点只是为了某些目录或扩展?
例如,我可能有两个需要单独caching设置的目录:
/static/images
/content/pdfs
是否有可能build立规则发送caching标题( max-age
, expires
等)基于扩展名和文件夹path?
请注意,我必须能够通过web.config
来做到这一点,因为我没有访问IIS控制台。
您可以在根web.config
为整个文件夹设置特定的caching标头:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- Note the use of the 'location' tag to specify which folder this applies to--> <location path="images"> <system.webServer> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" /> </staticContent> </system.webServer> </location> </configuration>
或者,您可以在内容文件夹的web.config
文件中指定这些文件:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" /> </staticContent> </system.webServer> </configuration>
我不知道内置的机制来定位特定的文件types。
你可以在每个文件的基础上做到这一点。 使用path属性来包含文件名
<?xml version="1.0" encoding="UTF-8"?> <configuration> <location path="YourFileNameHere.xml"> <system.webServer> <staticContent> <clientCache cacheControlMode="DisableCache" /> </staticContent> </system.webServer> </location> </configuration>