Comment remplacer simplement asp-append-version avec Blazor, et .net 8 ?

La migration vers .net 8 et Blazor Web App passe par la suppression des Tag Helpers d’ASP .net. De ce fait, le Tag asp-append-version n’est plus utilisable.

Il existe bien évidement des solutions pour réintroduire celui-ci. Mais veut-on réintroduire des méthodes qui n’ont pas vocation à fonctionner avec Blazor. Personnellement, ma réponse est non.

Le travail effectué par asp-append-version est très simple. Il consiste à ajouter à l’URL du fichier le hash de ce même fichier. De ce fait, l’URL du fichier change après chaque modification du fichier. Ceci force le navigateur à télécharger le fichier, et permet d’éviter les problèmes de mise en cache de ces fichiers.

En soi, rien de bien compliqué. On peut donc créer une méthode qui se chargera de retourner une URL incluant le hash du fichier.

Mais avec Blazor, la plupart des fichiers sont gérés automatiquement par le framework. Nous avons donc très peu de fichiers ajoutés manuellement, et devant avoir besoin de asp-append-version. Le besoin étant plus limité, il est donc possible de faire encore plus simple.

Si l’utilisateur télécharge un ou deux fichiers js / css après chaque mise à jour, ce n’est pas grave. On peut donc s’appuyer sur le hash de l’application pour générer nos URL.

Ce qui est possible avec un code aussi simple que celui-ci :


<link href="css/common.css@(AppendHashCode)" rel="stylesheet" />
<script src="js/common.js@(AppendHashCode)"></script>

@code{
    private String AppendHashCode = "?v=" + System.Reflection.Assembly.GetExecutingAssembly().GetHashCode();
}

Simple, efficace, et sans réinventer la roue.

Jérémy Jeanson

Comments

You have to be logged in to comment this post.