jones: Cache umgehen?

Hallo Zusammen,
ich habe ein Problem bei meiner PHP-Seite.
Ich habe ein Bild namens foto1.gif auf meiner Homepage. Wenn ich nun foto1.gif durch ein neues ersetze (ebenfalls namens foto1.gif) sehen die User immer noch das alte Foto bis sie die Seite manuell neu laden(ich denke wegen dem Cache).
Wie kann ich dieses Problem lösen?

Folgendes habe ich schon probiert, nützt aber nichts:

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">

Vielen Dank für eure Hilfe,

Gruss Jones

  1. Hi,

    Wenn ich nun foto1.gif durch ein neues ersetze (ebenfalls namens foto1.gif) sehen die User immer noch das alte Foto bis sie die Seite manuell neu laden(ich denke wegen dem Cache).
    Folgendes habe ich schon probiert, nützt aber nichts:
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">

    richtig, das bezieht sich auf das HTML-Dokument, nicht auf irgend welche anderen Ressourcen. Diese haben ihre eigenen HTTP-Header. Lasse den Server also Entsprechendes ausliefern; oder sorge für eine neue URL, so dass der Client die Ressource noch nicht im Cache haben kann.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. richtig, das bezieht sich auf das HTML-Dokument, nicht auf irgend welche anderen Ressourcen. Diese haben ihre eigenen HTTP-Header. Lasse den Server also Entsprechendes ausliefern; oder sorge für eine neue URL, so dass der Client die Ressource noch nicht im Cache haben kann.

      Das selbe Problem habe ich allerdings auch, wenn sich z.B. der Text auf der Page ändert...

      1. Hi,

        Das selbe Problem habe ich allerdings auch, wenn sich z.B. der Text auf der Page ändert...

        der Text befindet sich (vermutlich) im HTML-Dokument, also sind die HTTP-(äquivalenten-)Header der HTML-Ressource von Belang. Die Lösung ist Dir bekannt.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. der Text befindet sich (vermutlich) im HTML-Dokument, also sind die HTTP-(äquivalenten-)Header der HTML-Ressource von Belang. Die Lösung ist Dir bekannt.

          Selbstverständlich habe ich die oben erwähnte Lösungsversuche auch schon bei diesem Problem ausprobiert, ohne Erfolg.
          Der Text befindet sich ebenfalls in einem .php Dokument weil ich noch diverse includes verwende. Allerdings befindet sich der Text nicht in einem PHP-Teil (<php ... ?>)
          Hat das einen Einfluss?

          1. hi,

            Der Text befindet sich ebenfalls in einem .php Dokument weil ich noch diverse includes verwende. Allerdings befindet sich der Text nicht in einem PHP-Teil (<php ... ?>)
            Hat das einen Einfluss?

            Interessiert das irgendeinen Client?

            Nein, natürlich nicht.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Ich habe ein Bild namens foto1.gif auf meiner Homepage. Wenn ich nun foto1.gif durch ein neues ersetze (ebenfalls namens foto1.gif) sehen die User immer noch das alte Foto bis sie die Seite manuell neu laden(ich denke wegen dem Cache).
    Wie kann ich dieses Problem lösen?

    Informiere Dich erstmal, was bzw. wie Dein Browser anfordert und was Dein Server daraufhin ausspuckt, zum Beispiel mit der LiveHTTPHeaders-Erweiterung für den Firefox. Ohne dieses Wissen stocherst Du eher im Trüben.

    Benutzt Du den Apache-Server, besteht eventuell die Möglichkeit, mittels mod_expires oder mod_headers (zusammen mit Cache-Control) das Caching zwangsweise zu unterdrücken. Diese Methoden sind aber mit Vorsicht zu genießen, durch das Neuladen übers Netz werden Deine Seiten logischerweise etwas langsamer als wenn sie aus dem Browser-Cache kommen. Sinnigerweise sollte deshalb wo möglich auf <Location> zurückgegriffen werden.

    Darüber hinaus solltest Du beachten, dass einige Browser es zulassen, die Überprüfung von Resourcen (die nach einem ausgeklügelten System üblicherweise bei so ziemlich jedem Zugriff stattfindet) teilweise oder gänzlich abzuschalten - dann bist Du machtlos.