Perché a volte la favicon non viene visualizzata e genera errori di "pagina non trovata" e altre volte viene visualizzata


8

Come suggerisce la domanda, a volte il registro di Drupal mostra che la favicon non è stata trovata. In effetti, non viene visualizzato nella scheda del browser o nella barra degli indirizzi. Altre volte, anche all'interno della stessa sessione di navigazione, si presenta.

Perché lo fa e come posso impedirlo in modo che la favicon mostrerà sempre?

Sto usando la versione Drupal 7.22. con un sottotema personalizzato e un tema di amministrazione (Stark).

La mia favicon è impostata nella configurazione del tema del sottotema su sites / default / files / images / favicon.ico e si trova lì come ho controllato tramite FTP.

Il registro mostra che il browser sta cercando in example.com/favicon.ico.

Il sottotema personalizzato che uso ha <link rel="shortcut icon" href="http://example.com/sites/default/files/images/favicon.ico"; type="image/vnd.microsoft.icon" />nel codice sorgente e il tema dell'amministratore (Stark) lo usa <link type="image/vnd.microsoft.icon" href="http://example.com/misc/favicon.ico"; rel="shortcut icon">e questo file esiste anche in quella posizione (ovviamente non usando example.com).

Drupal sta usando URL puliti.

Il web server è Apache su Debian Linux.

Grazie.


Potrebbe essere d'aiuto se fornissi un referer per questi errori, dovrebbe essere nel registro.
Mołot,

@Molot Il campo referrer è vuoto o in un'altra pagina del sito in tutti i casi che ho controllato nel registro.
authentictech,

Puoi modificare nel messaggio di registro per mostrare il percorso, quale server web stai utilizzando e se funziona mod_rewrite (ovvero, URL puliti)?
mpdonadio

Risposte:


4

Alcuni browser cercano favicon su http://example.com/favicon.ico senza controllare. Ma adesso sono una minoranza.

Il massimo rispetto:

<link rel="icon" href="http://example.com/img/icon.png">

come descritto da W3C .

Se il tuo sito tenta di utilizzare l' <link>approccio ma non riesce in alcune pagine, come le pagine di amministrazione rese utilizzando un modello diverso e non hai favicon.ico nella posizione predefinita, otterrai effetti esattamente descritti.

Se il browser è alla ricerca di http://example.com/favicon.ico quando hai ragione, <link rel="shortcut icon">si tratta di un problema del browser, non tuo. Significa che il browser (o almeno quella parte del suo codice) è obsoleto, a meno che non abbia prima guardato sotto l'URI corretto e abbia ottenuto un altro errore, ma poi vedresti due errori nel registro, uno per il posto giusto, il secondo per uno obsoleto. Nella coda di Mozilla ci sono una serie di segnalazioni sul rilevamento errato di favicon da parte di FireFox - in questo esempio . Mostra come anche i browser moderni possano talvolta ricorrere a vecchi metodi.


Sì, il registro mostra che il browser sta cercando in example.com/favicon.ico . Il sottotema personalizzato che uso per il sito fornisce <link rel = "icona scorciatoia" href = " example.com/sites/default/files/images/favicon.ico " type = "image / vnd.microsoft.icon" /> nel codice sorgente (non attualmente example.com) che è la posizione corretta. Se disattivo l'overlay, il tema dell'amministratore sta utilizzando <link type = "image / vnd.microsoft.icon" href = " example.com/misc/favicon.ico " rel = "icona di collegamento"> e questo file esiste anche in quella posizione.
authentictech,

Tutto sembra corretto come dovrebbe essere. Quindi si tratta di un problema del browser o del sito Web? Dove andrei a ripararlo? Grazie.
authentictech,

@authentictech se il browser sta cercando ad esempio.com/favicon.ico quando hai ragione <link rel="shortcut icon">, è un problema del browser, non tuo. Significa che il browser non è aggiornato, a meno che non abbia prima guardato nella posizione corretta e abbia ottenuto un altro errore, ma poi lo vedresti nei registri appena prima di questo. Aggiornerò la mia domanda.
Mołot,

1
@MPD Potrebbe non essere servito da Apache; La configurazione di nginx del Pantheon omette questa regola per esempio (se ricordo bene)
Clive

2
@authentictech Firefox ha numerose segnalazioni di bug aperte sulla gestione errata di favicon. Come questo per esempio. Parti del suo codice sono vecchie, tristi ma vere. Se vuoi gestirlo, puoi aggiungere la riscrittura al tuo .htaccess, ma sarà hackerare attorno a un bug del browser, non correggere un bug del sito.
Mołot,

2

Soluzione rapida e semplice per questo dolore, è usare il modulo Redirect e fare un reindirizzamento per esso.

Una volta abilitato il modulo, vai admin/config/search/redirect/adde usa favicon.icosotto da e a dovrebbe essere la posizione effettiva del tuo tema favicon.ico.


Questo file viene gestito automaticamente da .htaccess, quindi la richiesta non arriva mai a Drupal per il modulo Redirect per gestirlo.
Vincent,

1
Sì, lo fa a Drupal. Altrimenti come verrebbe registrato nel registro di Drupal? Ho usato questo approccio con successo nella produzione.
cdmo,

1
Hai ragione, l'ho appena provato. Ho modificato la tua risposta originale in modo che io possa passare il mio voto negativo a un voto positivo.
Vincent,

0

Se stai usando Apache, il modo migliore che ho trovato per risolverlo è mettere:

<Location /favicon.ico>
  ErrorDocument 404 "No favicon"
</Location>

Questo codice dovrebbe funzionare nel tuo file vhost o dovrebbe funzionare anche nel file .htaccess, vedi http://httpd.apache.org/docs/2.4/sections.html per maggiori dettagli


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.