Grafik bei jedem Seitenaufruf neu laden
hannes12345
- html
Hallo,
auf meiner Startseite habe ich ein Bild welches mehrmals täglich aktuelisiert wird. Da der Name der Grafik immer der selbe ist, wird bei einem erneuten Besuch der Seite immer eine veraltetet Grafik angezeigt. (Liegt warscheinlich am Browser-Cache).
Wie schaffe ich es, das der Cache nicht benutzt wird?
Mit <meta http-equiv="cache-control" content="no-cache"> klappt es nicht.
Gruss
@@hannes12345:
nuqneH
Mit
<meta http-equiv="cache-control" content="no-cache">klappt es nicht.
Du möchtest nicht das Cache-Verhalten für die HTML-Resource steuern, sondern für die Bild-Resource. Das müsstest du in deiner Serverkomfiguration zu, evtl. mit der <Files>-Direktive nur für diese eine Datei.
Alternativ könntest du, wenn du deine HTML-Ressource mit SSI, PHP o.ä. generierst, einen Fragmentbezeichner an den URI der Bild-Resource anhängen, der sich bei jedem Aufruf ändert; ein Timestamp bietet sich dafür an.
Qapla'
Hi,
auf meiner Startseite habe ich ein Bild welches mehrmals täglich aktuelisiert wird. Da der Name der Grafik immer der selbe ist, wird bei einem erneuten Besuch der Seite immer eine veraltetet Grafik angezeigt. (Liegt warscheinlich am Browser-Cache).
genau!
Wie schaffe ich es, das der Cache nicht benutzt wird?
Es gibt mehrere Möglichkeiten. Die beste ist wohl, im HTML-Dokument, das die Grafik referenziert, jedesmal einen zufälligen URL-Parameter anzuhängen. Der wird natürlich vom Server ignoriert, für den Browser ist es aber jedesmal klar eine andere Ressource. Also etwas in der Art:
<img src="image.jpg?t=62375" alt="aktuelles Bild">
Mit
<meta http-equiv="cache-control" content="no-cache">klappt es nicht.
Natürlich nicht. Diese im HTML-Dokument notierte Angabe betrifft -wenn sie überhaupt berücksichtigt wird- nur das Caching-Verhalten für das HTML-Dokument, nicht für Bilder, die darin referenziert werden.
Wenn schon, dann müsstest du entsprechende Angaben im HTTP-Header des Bildes mitgeben.
So long,
Martin
Hallo,
wie Martin sagte, ist die einfachste Lösung wenn du jedesmal einen 'zufälligen' Parameter an das Bild hängst.
Mit Javascript z.B. so:
var a= Math.floor(Math.random()*1000);
var picture = document.getElementById('pic');
picture.src = 'dein_bild.jpg?'+a;
<img src="" alt="bild" id="pic" />
Mit PHP z.B. so:
echo '<img src="dein_Bild.jpg?'.time().'" alt="Bild" />';
Im JS-Beispiel wird eine Zufallszahl erzeugt.
Im Fall von PHP wird ein timestamp angehängt, der ebenfalls immer anders ist und den Browser zum laden der Ressource bewegt.
Grüße, Matze