tarayıcı önbelleği görüntüleri olun.ASP.NET MVC: Bir dosya döner ve sadece bir argüman (id) sahip bir actionmethod sahip eylem
örn.
public ActionResult Icon(long id)
{
return File(Server.MapPath("~/Content/Images/image" + id + ".png"), "image/png");
}
Ben tarayıcı otomatik olarak bu görüntüyü ben tüm verileri indirmek zorunda değildir dahaki sefere öyle erişim ilk kez önbelleğe almak istiyorum.
Ben yanıtta OutputCacheAttribute gibi noktaları elle ayarlama başlıklarını kullanarak çalıştılar. yani:
[OutputCache(Duration = 360000)]
veya
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(Cache.NoAbsoluteExpiration);
Ama görüntü hala ben tarayıcı (ı Chrome ve Internet Explorer üzerinde çalışıyorum) üzerinde F5 her vuruşunda yüklenir. (Her seferinde yüklendiğini biliyorum çünkü görüntüyü değiştirirsem tarayıcıda da değişir).
Cache-Control: Kamu, max-yaş = 360000
İçerik-Uzunluk: 39317
İçerik-
Ben HTTP yanıt görünüşte çalışması gereken bazı başlıkları olduğunu görmekteyiz Tür: image/png
Tarih: Sal, 31 Ocak 2012 23:20:57 GMT
geçerlilik tarihi: Sun, 05 Şubat 2012 03:20:56 GMT
Son Güncelleme: Sal, 31 Ocak 2012 23:20:56 GMT
Ama istek başlıklarını bu var:
Pragma: no-cache
bu nasıl yapılacağı hakkında herhangi bir fikir ? Unutulmaması gereken
Çok teşekkürler
Çok teşekkürler, aradığım sadece ne. Yine de karmaşık görünüyor, ASP.NET MVC kullanarak bunu yapmanın bir "daha standart" yolu olmamalı? Yanıtı ve son değişikliği alacak ve buna göre ele alacak bir yöntem gibi mi? (Ben de öyle yapardım, ama bunu düşünen ilk insan olduğumu düşünmüyorum). – willvv
Her zaman kendi HttpHandler'ımı kullandım - bu yüzden MVC kullanmaya gerek yok, ancak bu şekilde yapılabileceği anlamına gelmiyor - sadece hangi yolun daha iyi performans gösterdiğinden emin değil misiniz? Http://imageresizing.net/ adresine bakmanızı öneririz. Bu, sizin ve daha fazlası için her şeyi ele alabilen harika bir küçük bileşen! – brodie
Sorun şu ki, resimlerim veritabanında saklanıyor ve harici olarak değiştirilebilir, bu nedenle bir HTTP işleyicisi bir seçenek gibi görünmüyor. – willvv