我的网站有一个网页,其中加载了大量图片,所以我决定将它们缓存在服务器和客户端上。在本地,一切正常,它们被正确缓存。但是,在生产中,缓存似乎不起作用。主机是共享主机,如果这有任何区别。我联系了托管公司的支持,他们说问题出在网络应用程序中。
网址:Actual site
[AllowAnonymous]
[OutputCache(Duration = 60*60*24*2, Location = OutputCacheLocation.ServerAndClient, VaryByParam ="id")]
public virtual FileContentResult GetPicture(int id)
{
byte[] byteArray = db.Pictures.Find(id).ByteContent;
if (byteArray != null)
return new FileContentResult(byteArray, "image/jpeg");
return null;
}
答案 0 :(得分:0)
我对您的实施有一些顾虑:
尝试删除位置参数,默认为
我看到您的操作是虚拟,请确保您没有覆盖继承控制器中的操作(我猜您有CMS)
最重要的:确保您验证相同的端点/网址
在您的开发中,您返回一个动态字节数组表单控制器操作,在prod中返回一个静态文件,对于静态文件,设置缓存的最简单方法是从web.config:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="02:00:00" />
</staticContent>
</system.webServer>
</configuration>