Problème de cache des CSS et Javascript avec ASP .net Core 2?
Quand on publie régulièrement des application web, il arrive que l’on soit confronté à des soucis de cache. Les navigateurs de nos utilisateurs conservent localement une version d’un script ou d’une CSS qui a été modifiée. Ceci peut provoquer de légers soucis esthétiques ou des disfonctionnements.
Ceci est très déplaisant. Surtout quand on tente de corriger un javascript.
Heureusement, ASP .net Core inclus un mécanisme de génération d’URL similaire à ce qui existe avec le .net Framework. Après caque changement d’un script ou d’une CSS, l’URL change. Ce qui force les navigateurs à télécharger le nouveau fichier plutôt que de faire confiance à leur cache.
Contrairement à ce que pensent certain, la solution marche aussi très bien avec les CSS.
Pour l’utiliser, il suffit d’ajouter l’attribut asp-append-version="true" sur un link ou script.
Ce qui ressemble à ceci :
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<script src="~/js/site.js" asp-append-version="true"></script>
Et qui produit :
<link href="/css/site.css?v=l5VC-eIa7L202p8HDctqRBt9f9P2fjmxs0egTejLk40" rel="stylesheet">
<script src="/js/site.js?v=KLwrxlYNu_NkBW1a0TNtJZsJyTmKPEbNgXhL6kc3zxg"></script>
Simple et efficace ;)