如何指定HTTP到期头? (ASP.NET MVC + IIS)

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

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

我知道Response对象包含一些控制caching过期的属性。 我知道这些属性可以用来控制HTTPcaching来响应我从我的代码服务:

Response.Expires Response.ExpiresAbsolute Response.CacheControl 

或者可选地

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

问题是如何为自动提供的资源(例如图像,CSS等)设置Expires头部?

find了:

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

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

http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache

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

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

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

看看迷你静态内容交付项目。 🙂