如何在IIS7中为每个文件夹和扩展配置静态内容缓存?

如何在IIS7中为每个文件夹和扩展配置静态内容缓存?,iis,iis-7,caching,web-config,http-headers,Iis,Iis 7,Caching,Web Config,Http Headers,我想在IIS7中为ASP.NET网站中的静态内容缓存设置规则 我已经看过这些文章,其中详细介绍了如何使用web.config中的元素执行此操作: 但是,此设置似乎全局应用于所有静态内容。是否有一种方法可以仅针对某些目录或扩展名执行此操作 例如,我可能有两个需要单独缓存设置的目录: /static/images /content/pdf 是否可以根据扩展名和文件夹路径设置发送缓存头(max age,expires等)的规则 请注意,我必须能够通过web.config执行此操作,因为我没有访问I

我想在IIS7中为ASP.NET网站中的静态内容缓存设置规则

我已经看过这些文章,其中详细介绍了如何使用
web.config
中的
元素执行此操作:


但是,此设置似乎全局应用于所有静态内容。是否有一种方法可以仅针对某些目录或扩展名执行此操作

例如,我可能有两个需要单独缓存设置的目录:

/static/images

/content/pdf

是否可以根据扩展名和文件夹路径设置发送缓存头(
max age
expires
等)的规则


请注意,我必须能够通过
web.config
执行此操作,因为我没有访问IIS控制台的权限。

您可以在根目录
web.config
中为整个文件夹设置特定的缓存头:


或者,您可以在内容文件夹中的
web.config
文件中指定这些:



我不知道有针对特定文件类型的内置机制。

您可以按每个文件执行。使用路径属性包含文件名

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="YourFileNameHere.xml">
        <system.webServer>
            <staticContent>
                <clientCache cacheControlMode="DisableCache" />
            </staticContent>
        </system.webServer>
    </location>
</configuration>

我也遇到了同样的问题。对我来说,问题是如何配置图像的缓存限制。我遇到了这个网站,它为如何处理这个问题的过程提供了一些见解。希望它也能对您有所帮助
链接:[

太好了。你能给我推荐一本关于IIS 7的书吗?我想了解这些东西。谢谢。@vtortola-你不会弄错[IIS7资源工具包](:),它实际上非常有用。这本书也不错。TBH我主要是从IIS.NET配置参考网站上学到的:以及通过浏览
%systemroot%\system32\inetsrv\config\applicationhost.config
文件和相关朋友。有人知道这是递归的吗?例如,如果你的图像路径下有子文件夹,它是否也会是否确认这些?需要注意的一点是,浏览器会将
路径=“
视为案例sensitive@StuffandBlah是的,它是递归的。我自己尝试过,IIS对我指定为“location”的文件夹子文件夹中的所有文件请求应用了相同的缓存控制设置。如果要将其应用于特定扩展名的所有文件?单独使用.xml或*.xml是否有效?@Zulgrib若要将其应用于特定扩展名,可以使用出站重写规则:@Zulgrib如何对多个文件而不是同一类型的所有文件使用位置标记。例如,根文件夹中的两个jpg文件,但不是所有文件?请考虑er根据以下内容从链接中添加一些信息:鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。