martedì 20 giugno 2017

Creare un sistema per invalidare la client cache di risorse CSS e Javascript (ma un po di tutto in realtà)

Per invalidare la client cache di risorse linkate nel codice HTML è necessario modificare la chiamata alla risorsa così che il browser si accorga che il file è stato modificato.

E' prassi inserire un falso parametro in GET così che il file, senza cambiare nome, viene percepito come nuovo e quindi scaricato.

Kentico non ha un sistema per automatizzare questo comportamento ma possiamo costruire qualcosa di simile con gli strumenti a nostra disposizione nel backend.

Si tratta di:
  • Creare una custom setting numerica o alfanumerica
  • Impostare una macro nel codice della chiamata della risorsa

Per impostare il custom setting si utilizza Modules, quindi si seleziona Custom settings e si crea una nuova Setting Key



Si imposta la chiave in modo che sia un numero intero incrementale




Una volta salvato questo è il risultato nei Settings del sito web:



A questo punto possiamo utilizzare questo numero come variabile per invalidare le attuali risorse cachate

<link href="~/CMSPages/GetCSS.aspx?stylesheetname=ie8fix&amp;v={%Settings.cache_invalidator#%}" type="text/css" rel="stylesheet" />



Fonti: