如何为直接访问的文件设置缓存标头

时间:2015-05-15 02:11:21

标签: asp.net caching iis iis-7 browser-cache

我有一台为Twilio提供WAV文件的服务器,我在设置缓存到这些文件时遇到了一些问题。 我的问题是文件有不同的到期日期,有些不应该被缓存,有些应该缓存一天,有些缓存一个月等等。 目前我能够设置为不使用IIS输出缓存来缓存任何文件,但是现在我需要设置一些缓存。 基本上Twilio请求直接调用它的WAV文件,例如http://mywebsite.com/mysoundwithoutcache.wav以及http://mywebsite.com/mysoundwith1daycache.wav等等。

我的问题是如何将这些标题添加到那些直接调用的文件中?

我正在使用IIS 7和ASP.NET

提前致谢

1 个答案:

答案 0 :(得分:1)

将设置仅应用于某些文件的方法是使用位置标记,在web.config中添加配置下的新节点:

<location path="cache_me.wav">
<system.webServer>
    <caching>
        <profiles>
            <add extension="*.wav" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="01:00:00" />
        </profiles>
    </caching>        
</system.webServer>
</location>

不幸的是,我认为您不能在路径属性中使用通配符,因此您可以为每个文件使用其中一个部分。如果将所有文件缓存到一个单独的文件夹中会更容易,那么您可以使用单个位置节点。

说了这么多,你不应该担心wave文件的输出缓存,静态文件会被IIS自动缓存。