Problem
Bei der Analyse der Seite .NET User Group Bern zur Page Speed und YSlow – Optimierung zeigte die Auswertung die Meldung «Leverage browser caching for the following cacheable resources».
Zur Optimierung der Performance lassen sich statische Ressourcen, die sich selten ändern im Browser Cache zwischenspeichern.
Die Kennzahlen zeigten vor der Korrektur folgende Werte:
Aktion
Um in .NET Core für statische Dateien einen Cache-Header einzufügen ist in der Startup.cs eine Anpassung nötig.
In der Methode Configure muss der Aufruf app.UseStaticFiles() erweitert werden.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseStaticFiles(new StaticFileOptions { OnPrepareResponse = ctx => { const int durationInSeconds = 60 * 60 * 24 * 7; ctx.Context.Response.Headers[HeaderNames.CacheControl] = $"public,max-age={durationInSeconds}"; } }); ... }
Resultat
Nach dieser Anpassung werden die statischen Dateien im Browser-Cache zwischengespeichert. Die Kennzahl Leverage Browser Caching hat neu statt F (25) die Bewertung A (96)
Die Kennzahlen für Page Speed und YSlow haben neu folgende Werte:
Eine kleine Anpassung mit grosser Wirkung.