14.10.2015, Vladimír Klaus, navštíveno 3518x
Pokud občas analyzujete weby pomocí služeb jako je např. https://gtmetrix.com/, pak vám asi často vyběhne informace, že je třeba zlepšit "Leverage browser caching". Na systémech s Apache funguje soubor .htaccess, ale na IIS bohužel ne.
Naštěstí je zde pěkné a jednoduché řešení - úprava souboru Web.config a to takto:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMaxAge="30.00:00:00"
cacheControlMode="UseMaxAge"/>
</staticContent>
</system.webServer>
</configuration>
Tímto nadefinujeme, že soubory mají "životnost" 30 dní a teprve poté se je prohlížeč bude snažit znovu stáhnout.
Výsledkem bude pochopitelně rychlejší načítání stránek, protože se nevykonává řada (zbytečných) HTTP požadavků na stažení dat. Zvláště u obrázků, které jednou nahrajete na server a pak už neměníte, je to velmi výhodné.
Trochu jinou variantou je určení data, do kdy soubory platí, ale to není úplně ideální, protože někam zadávat fixní datum zavání problémem.
<configuration>
<system.webServer>
<staticContent>
<clientCache httpExpires="Sun, 1 Jan 2017 00:00:00 UTC"
cacheControlMode="UseExpires"/>
</staticContent>
</system.webServer>
</configuration>
Zdroje:
- http://madskristensen.net/post/add-expires-header-for-images
- http://stackoverflow.com/questions/7221408/http-expire-headers-in-asp-net-with-web-config
- http://stackoverflow.com/questions/2608739/how-to-specify-http-expiration-header-asp-net-mvciis
- http://dotnetdaily.net/tutorials/add-expires-headers-asp-net-website/