Iis 7 是否可以为不同的静态文件类型控制IIS中的缓存控制头?

Iis 7 是否可以为不同的静态文件类型控制IIS中的缓存控制头?,iis-7,Iis 7,在IIS中,我可以配置它为同一文件夹中的不同静态文件类型返回不同的缓存控制头吗 我知道我可以使用HTTP头功能设置立即过期,但这似乎会影响所有内容。有没有办法针对静态内容的特定文件扩展名这样做?虽然不是一个理想的答案,但我确实找到了解决方法。在我的应用程序中,我可以控制我的JS、CSS和其他类似文件在目录结构中的位置。我所做的是在IIS根目录中放置一个web.config,其中包含以下行(除其他行外,不相关): 当然,你可以将年龄设置为你想要的任何年龄。我从现在开始有14天,直到我确定我一切都好

在IIS中,我可以配置它为同一文件夹中的不同静态文件类型返回不同的缓存控制头吗


我知道我可以使用HTTP头功能设置立即过期,但这似乎会影响所有内容。有没有办法针对静态内容的特定文件扩展名这样做?

虽然不是一个理想的答案,但我确实找到了解决方法。在我的应用程序中,我可以控制我的JS、CSS和其他类似文件在目录结构中的位置。我所做的是在IIS根目录中放置一个
web.config
,其中包含以下行(除其他行外,不相关):

当然,你可以将年龄设置为你想要的任何年龄。我从现在开始有14天,直到我确定我一切都好,然后我可能会撞到几个月

这样,我的SPA的HTML就永远不会被缓存,但是所有的JS/CSS/图像都会像我想的那样存在。当我为下一次部署重建项目时,WebPack将为打包的JS和CSS生成新的文件名,因此没有缓存问题。当然,HTML文件将是相同的名称,但包含的JS文件名将不同。因此,HTML文件永远不会被缓存是关键,这一设置完成了


IIS真的应该让这更简单。按文件类型配置的缓存可以很好地工作,并且不需要严格的目录结构管理,这不是所有项目都可以灵活遵循的。

我有同样的问题,您已经7年没有收到答案了。泰勒福赛斯:对不起,我不记得我为什么问这个问题,我是否解决了这个问题!“别担心,”克雷格谢尔说。我找到了一个适合我的项目的解决方案,并在下面发布给未来的搜索者。
<configuration>
  <system.webServer>
     <staticContent>
       <clientCache cacheControlMode="DisableCache" setEtag="true" />
     </staticContent>
  </system.webServer>
</configuration>
<configuration>
  <system.webServer>
     <staticContent>
       <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="14.00:00:00" setEtag="true" />
     </staticContent>
  </system.webServer>
</configuration>