Problema

Quando si cambia la favicon in Joomla da quella di default o da una precedente esistente, il browser (Google, Chrome, etc.) si ostina a visualizzare la vecchia favicon (a volte anche dopo aver eliminato la cronologia).

Causa

Il problema è causato principalmente dalla cache del browser che mantiene in memoria la favicon; anche quando quest'ultima viene aggiornata, dato che il suo nome (favicon.ico) è sempre lo stesso, il browser non riesce a mostrare la nuova.

Soluzione

Per forzare l'update della favicon è sufficiente aggiungere nel codice php della pagina un elemento che vari sempre come ad es. il timestamp corrente. Questo metodo permette di evitare di dover cancellare necessariamente la cache del browser.

Attenzione! Se non sei pratico nel modificare file sorgenti di PHP, potresti rendere inutilizzabile il tuo sito Joomla!, quindi se in ogni caso prosegui con la lettura delle istruzioni e danneggi il tuo sito ti assumi la responsabilità; in ogni caso prima di procedere fai in ogni caso un backup del file che andrai a modificare.

Nello specifico, nel caso di Joomla 3.X, è necessario effettuare questa semplice modifica al codice:

  1. Posizionarsi nella directory di root del proprio sito Joomla!
  2. Cercare il file html.php in una delle seguenti directory (a seconda della versione di Joomla):
    • /libraries/joomla/document/html.php 
    • /libraries/joomla/document/html/html.php
  3. Aprire il file html.php con un editor di testo (ad es. notepad++)
  4. Cercare la seguente stringa: "$this->addFavicon" senza virgolette (è attorno alla riga 592 del file)
  5. La ricerca individuerà la stringa nella seguente riga: $this->addFavicon(JUri::base(true) . $path . $icon);
  6. Apportiamo adesso la modifica al codice: alla destra di $icon, prima della parentesi tonda chiusa, aggiungete quanto riportato di seguito (senza le doppie virgolette iniziali e finali e solo la parte in rosso): 
  7. . '?v='.round(microtime(true) * 1000)"  (fare attenzione al punto iniziale)
  8. Dopo la modifica la riga precedente si trasformerà in:
  9.  $this->addFavicon(JUri::base(true) . $path . $icon . '?v='.round(microtime(true) * 1000)); 
  10. Salvare il file.
  11. Aggiornare il browser.
  12. FINALMENTE la vostra nuova favicon sarà visibile sia nei preferiti che nella scheda del browser

 

Note

  • In caso di aggiornamento di Joomla!, se gli sviluppatori di Joomla! apportano modifiche al file html.php, il file che abbiamo modificato sarà sovrascritto e quindi sarà necessario effettuare nuovamente la modifica. Perciò, ogni volta che la propria installazione di Joomla! viene aggiornata, bisogna verificare se le modifiche apportate sono ancora presenti.
  • Se provate ad accedere direttamente al file favicon.ico, probabilmente continuerete a vedere la vecchia versione della favicon. Con questo metodo è possibile "imbrogliare" il browser e fargli caricare la nuova favicon solo quando viene richiamata una pagina web di Joomla.

 

Galleria video