如何指定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有关。
看看迷你静态内容交付项目。 🙂