Feature #10638
ferméMise en place d'un Cache Busting pour les ressources CSS et JS.
100%
Description
Il s'agit ici de se baser sur les explications fournies à partir de https://csswizardry.com/2019/03/cache-control-for-civilians/
Le but est d'obtenir de la part du navigateur le moins d'aller retour vers le serveur pour récupérer les fichiers CSS et JS (en ce qui nous concerne pour le moment) et d'augmenter du coup les performances d'affichage et de fluidité de Silverpeas.
Mis à jour par Yohann Chastagnier il y a plus de 5 ans
- Statut changé de In progress... à Resolved
- % réalisé changé de 0 à 100
Le numéro de version est maintenant automatiquement ajouté dans le nom des fichiers JS et CSS, accessibles depuis le contexte applicatif /silverpeas, sans action particulière de la part du développeur.
A noter que pour le plugin CKEDITOR a été ajouté le paramétrage de la constante ci-dessous :
window.CKEDITOR_BASEPATH = '/silverpeas/wysiwyg/jsp/ckeditor/';
Mis à jour par Miguel Moquillon il y a plus de 5 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Miguel Moquillon il y a plus de 5 ans
- Statut changé de Integration in progress... à Closed
Mis à jour par Yohann Chastagnier il y a environ 3 ans
- Statut changé de Closed à Resolved
- Version cible changé de Version 6.1 à Version 6.2.2
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.
- 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ètrecache.busting.method
:
VERSION
: méthode actuelle. Si la version de Silverpeas est6.2.2
alors l'empreinte calculée est622
.LAST_FILE_MODIFICATION
: dans ce cas, le système lit la dernière date de modification du fichier spécifié au niveau du paramètrecache.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 est24/06/2021 14:30:59.089
, l'empreinte calculée est06241430
. 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
Mis à jour par Miguel Moquillon il y a environ 3 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Miguel Moquillon il y a environ 3 ans
- Statut changé de Integration in progress... à Closed
Intégré dans 6.2.x et dans master