pgoetz: Firefox favicon wird nicht angezeigt

Hallo zusammen,

ich habe gerade ein seltsames Phänomen beobachtet, das mir bis jetzt noch nicht aufgefallen ist. Vielleicht wisst Ihr was dazu.
Ich entwickle gerade eine Seite, die unter Anderem ein favicon enthält. Dieses binde ich über die Angabe
Code:
<link rel="shortcut icon" type="image/x-icon" href="${contextPath}/favicon.ico" />
ein. Der Platzhalter ${contextPath} ist der aktuelle Kontext-Pfad der Anwendung (Java Webanwendung). In der Entwicklung ist dieser Kontextpfad bei mir z.B. "/entw", später im Livebetrieb wird es keinen Kontextpfad geben, da wir die Anwendung direkt in der Context Root ausliefern werden (also http://www.domain.tld/). Auf meinem Testserver habe ich jetzt die Anwendung mal in die Context Root deployed und erhalte im Internet Explorer (7) wie erwartet ein favicon. Im Firefox (3.5.2) leider nicht. Nach einigem googlen und lesen (erfolglos) habe ich das Favicon jetzt innerhalb der Anwendung mal vom oben genannten Pfad (also dem Wurzelverzeichnis der Anwendung) in das Verzeichnis /images kopiert und den o.g. Link entsprechend angepasst. Seitdem erhalte ich auch im Firefox das favicon angezeigt.
Kennt einer von Euch dieses Phänomen und ist das so gewollt? Ich hatte das favicon absichtlich im Wurzelverzeichnis der Anwendung untergebracht, um lästige 404-Errors von den Browsern zu vermeiden, die immer dort nach einem favicon suchen. Wenn dieses Thema bekannt ist, gibt es eine Möglichkeit, das favicon im Wurzelverzeichnis der Anwendung auszuliefern *und* es über <link ... /> im <head> zu referenzieren?
Ach ja, den Browser Cache im Firefox habe ich bereits geleert (Strg-F5). Und die Grafik kann über die direkte URL http://www.domain.tld/favicon.ico angezeigt werden.

Vielen Dank schon mal für Eure Erklärungen!

Schöne Grüße,

Peter

  1. Hallo,

    ohne näher auf Dein Java oder das ${contextPath} eingehen zu wollen:

    Wieso verlinkst Du nicht einfach mit href="/favicon.ico" und steckst das Icon ins Wurzelverzeichnis? Dann müsste es doch gehen. Oder habe ich irgend etwas nicht mitbekommen bzw. falsch verstanden? Im übrigen wäre es einfacher, den Fehler nicht in Deiner Java-Anwendung zu suchen, sondern in dem HTML-Code, den diese erzeugt.

    Grüße, luti

    1. Hallo luti,

      [...]
      ohne näher auf Dein Java oder das ${contextPath} eingehen zu wollen:

      Wieso verlinkst Du nicht einfach mit href="/favicon.ico" und steckst das Icon ins Wurzelverzeichnis? Dann müsste es doch gehen. Oder habe ich irgend etwas nicht mitbekommen bzw. falsch verstanden? Im übrigen wäre es einfacher, den Fehler nicht in Deiner Java-Anwendung zu suchen, sondern in dem HTML-Code, den diese erzeugt.

      Scheinbar hatte ich zu viel Prosa in meinem Text. Aber genau das war das Problem an der Sache. Mein href war "/favicon.ico", weil ${contextPath} leer ist (im Testsystem). Ich habe den Fehler deshalb auch nicht in der Variable gesucht, weil ich wusste, was drin stand.
      Das Problem hat sich aber gelöst (siehe meinen anderen Post im Thread). Es scheint ein Cache-Thema gewesen zu sein.

      [...]

      Vielen Dank für Deine Hilfe und schöne Grüße!

      Peter

      1. Hallo Peter,

        Scheinbar hatte ich zu viel Prosa in meinem Text.

        ;)

        Mein href war "/favicon.ico", weil ${contextPath} leer ist (im Testsystem).

        Ok, aber ich wollte eigentlich darauf hinaus, dass Du Dir das ${contextPath} komplett sparen kannst ... "/" verweist immer auf das (Domain-)Rootverzeichnis, d.h. die Kontext-Variable ist imho an dieser Stelle überflüssig.

        Vielen Dank für Deine Hilfe und schöne Grüße!

        Danke für die Bedankung und ebenfalls schöne Grüße, luti

        1. [...]
          Ok, aber ich wollte eigentlich darauf hinaus, dass Du Dir das ${contextPath} komplett sparen kannst ... "/" verweist immer auf das (Domain-)Rootverzeichnis, d.h. die Kontext-Variable ist imho an dieser Stelle überflüssig.

          Das stimmt nur in der Testumgebung. Auf meinem Entwicklungsrechner deploye ich die Anwendung in einem Kontextpfad, deshalb steht die Variable da auch rum. Damit kann ich egal in welchem deployten Zustand immer davon ausgehen, dass der Kontextpfad beim Aufbau von URLs korrekt gesetzt und berücksichtigt wird. Das wars dann auch schon von mir mit OT. :)

          Schöne Grüße und bis bald!

          Peter

  2. Hallo nochmal,

    scheinbar war gestern nacht die nette Favicon-Fee hier im Büro und hat irgendwas geändert, damit es heute morgen lief. :)
    Ich vermute, Strg-F5 hat nicht bewirkt, dass der Firefox das Favicon auch aus seinem internen Cache entfernt und neu lädt. Nach dem Neustart meines Rechners und damit einem neu gestarteten Firefox kam das favicon.
    Kann das einer von Euch bestätigen, dass der Firefox einen Neustart benötigt, um das Favicon neu zu laden?

    Schöne Grüße,

    Peter