MVC 5网站上的YSLOW到期标题

时间:2013-12-30 23:12:09

标签: asp.net-mvc yslow

我使用YSlow测试ASP.NET MVC网站,我收到错误:

为以下项添加“到期标题”:

(no expires) http://www.mydomain.pt/assets/logo.png  
(no expires) http://www.mydomain.pt/favicon-196x196.png  
(2013/12/30) http://www.mydomain.pt/file/e6fb9d2a-668b-423a-9120-0b34228f296c  

奇怪的是,我解决了这些问题。对于我使用的静态:

CORRECTED

<system.webServer>  
  <clientCache setEtag="false" cacheControlMode="UseMaxAge" cacheControlMaxAge="60.00:00:00" />
</system.webServer>

对于文件,由动作返回,我有:

[Route("file/{identifier:guid}"), HttpGet, OutputCache(Duration = 1200, Location = OutputCacheLocation.Client, VaryByParam = "identifier")]
public virtual ActionResult Get(Guid identifier, String n = null) {
}

有谁知道为什么我对这些项目仍然没有缓存?

我错过了什么吗?

谢谢你, 米格尔

2 个答案:

答案 0 :(得分:2)

使用以下语法:

<system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="60.00:00:00" />
    </staticContent>
</system.webserver>

答案 1 :(得分:0)

压缩静态文件与过期标头没有任何关系。压缩与GZip有关。

.png文件没有您在操作方法中设置的Expiry标头的原因是MVC没有用于提供静态文件,因此它不会设置标头。

Add expires header to images