我使用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) {
}
有谁知道为什么我对这些项目仍然没有缓存?
我错过了什么吗?
谢谢你, 米格尔
答案 0 :(得分:2)
使用以下语法:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="60.00:00:00" />
</staticContent>
</system.webserver>
答案 1 :(得分:0)
压缩静态文件与过期标头没有任何关系。压缩与GZip有关。
.png文件没有您在操作方法中设置的Expiry标头的原因是MVC没有用于提供静态文件,因此它不会设置标头。