MVC 5 网站上的 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  

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

纠正

<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) {
}

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

我错过了什么吗?

谢谢米格尔

使用以下

语法:

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

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

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

向映像添加过期标头

相关内容

  • 没有找到相关文章

最新更新