如何指定HTTP过期标头?(ASP.NETMVC+IIS)

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

我已经在ASP.NET MVC应用程序中使用输出缓存。

页面速度告诉我为响应头中的css和图像指定HTTP缓存过期。

我知道Response对象包含一些控制缓存过期的属性。我知道这些属性可以用来控制HTTP缓存来响应我从我的代码中提供的响应

Response.Expires
Response.ExpiresAbsolute
Response.CacheControl

或者可选

Response.AddHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT");

问题是如何为自动提供的资源设置Expires标题,例如图像,css等?

提问于
用户回答回答于

找到它:

我需要为静态内容指定客户机缓存(在web.config中)。

<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlCustom="public" 
      cacheControlMaxAge="12:00:00" cacheControlMode="UseMaxAge" />
    </staticContent>
   </system.webServer>
</configuration>

...

用户回答回答于

如果你想从你返回的资源的代码中完成它(即不是从IIS提供的静态文件),最好使用Response.Cache

Response.Cache.SetExpires(DateTime.Now.AddYears(1));
Response.Cache.SetCacheability(HttpCacheability.Public);

我知道这不是你所要求的,但我通过Google发现了这个问题,并且认为其他人可能会喜欢这个答案,因为它与你在原始问题文本中显示的API有关。

扫码关注云+社区