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.
1 Kommentar.
Hi René,
Erstmal es Guets Nöis und herzliche Gratulation zur Selbständigkeit! Coole Sache.
Was ich bei Caching noch empfehlen kann: Während der Entwicklung kann es nervig sein, deshalb würde ich noch sowas ähnliches einbauen: