Malgré la mise en place du cache busting basé sur le numéro de version Silverpeas, il y a des cas en production où le numéro de version de Silverpeas n'est pas assez discriminant.
Par exemple, en cas de coup dur, une livraison en urgence d'une partie des librairies peut être effectuée (le look par exemple).
La version de Silverpeas restant inchangée, les éventuelles nouvelles ressources CSS ou Javascript ne sont par reprises par le navigateur WEB qui reste sur les éléments qu'il possède dans son cache.
Pour palier à cela, plusieurs méthodes de traitement de cache busting sont maintenant proposées :
- la première se base sur la version de Silverpeas (méthode actuelle et prochainement par défaut)
- la seconde se base sur la dernière date de modification d'un fichier
- la dernière se base sur la date de démarrage du serveur Silverpeas
Le but de chacune de ces méthodes est de calculer une empreinte (fingerprint) pour l'insérer ensuite dans l'URL d'accès d'une ressource CSS ou Javascript.
Le choix de cette méthode s'effectue au niveau du fichier
$SILVERPEAS_HOME/properties/org/silverpeas/util/url.properties via le paramètre
cache.busting.method
:
VERSION
: méthode actuelle. Si la version de Silverpeas est 6.2.2
alors l'empreinte calculée est 622
.
LAST_FILE_MODIFICATION
: dans ce cas, le système lit la dernière date de modification du fichier spécifié au niveau du paramètre cache.busting.lastFileModification.path
. Le mois, le jour, l'heure et les minutes sont alors concaténés pour constituer l'empreinte. Par exemple, si la date de dernière modification d'un fichier est 24/06/2021 14:30:59.089
, l'empreinte calculée est 06241430
. La valeur par défaut de ce second paramètre est ${env.SILVERPEAS_HOME}/bin/silverpeas.gradle
.
SERVER_START
: l'heure de démarrage du serveur Silverpeas est traitée de la même manière que celle de dernière modification d'un fichier
Pour des raisons de performance, l'empreinte est calculée une seule fois au démarrage du serveur Silverpeas.
Si la méthode en cours n'est pas celle souhaitée, il faut alors redémarrer Silverpeas une fois le paramétrage modifié comme souhaité.
PR : https://github.com/Silverpeas/Silverpeas-Core/pull/1171