Cache löschen um immer aktuelle Bilder anzuzeigen

  • Joomla Version
    5
    PHP Version
    PHP 8.4.x
    Hoster
    Strato
    Link (URL) zur Seite mit dem Problem
    https://mfg-barsinghausen.de/

    Hi,

    ich habe auf der Startseite die Slideshow CK am laufen und ich kopiere häufig einfach neue Bilder mit gleichem Dateinamen in den Ordner. Und ich möchte, dass er immer die neuesten Bilder anzeigt. Leider werden manchmal die alten Bilder gezeigt, obwohl ich den Cache auf dem Joomla-Server gelöscht habe.

    Wie kann erreichen, dass ohne Probleme immer die neuesten Bilder nachgeladen werden?


    Danke

    Gruß

    Ulli

  • Ja, im anderen Browser (ich verwende meist Chrome) klappt es natürlich. Und ich kann natürlich den Browser-Cache löschen, aber die User werden es nicht tun und bekommen meist nur die alten Bilder zu sehen. Ich dachte eher an eine Einstellung in Joomla.
    Mit Strg-F5 oder nur F5 klappt es aber auch in Chrome nicht.

  • Ja, im anderen Browser (ich verwende meist Chrome) klappt es natürlich. Und ich kann natürlich den Browser-Cache löschen, aber die User werden es nicht tun und bekommen meist nur die alten Bilder zu sehen. Ich dachte eher an eine Einstellung in Joomla.
    Mit Strg-F5 oder nur F5 klappt es aber auch in Chrome nicht.

    Man kann bei Angabe des Bildpfades noch einen Parameter anhängen. Z.B. "beispiel_bild_xyz.jpg?V001

    Damit kann man den gleichen Dateinamen verwenden, aber durch Änderung des Zusatzes erzwingt man beim Client (=Browser) ein Update.

    Einen derartigen Mechanismus (mit Javaskript) verwende ich bei unseren Bildern einer Webcam.

    Eine Lösung, dass man den Browsercache der Seitenbesucher ferngesteuert löscht, ist mir nicht bekannt, daher ist das wohl der einzige Weg, sofern man die Dateinamen behalten will.

  • Du kannst schon Einfluss auf den Browser-Cache nehmen. Dazu gibt es entpsrechende Direktiven für die .htaccess. Siehe z.B. hier:

    So nutzt Du Browser Caching zur Beschleunigung Deiner Website | Ryte Magazine
    Je kürzer Deine Website für den Seitenaufbau benötigt, desto besser. Der PageSpeed ist nicht nur ein Rankingkriterium, sondern maßgeblich für eine positive…
    de.ryte.com

    So könntest du beispielsweise die Ablaufzeit für jpg (oder was auch immer) sehr kurz machen. Das betrifft allerdings alle jpg.

  • Ich setze Cache-Anweisungen für die meisten Dateitypen auf 30 tage per .htaccess - ähnlich wie oben erwähnt JoomlaWunder
    Und dann erzeuge ich Versionsnummern - wie auch oben erwähnt Norbert.R und zwar automatisiert.

    Die selbe Technik verwende ich auch bei meinem Templates, ich profitiere von sehr langer Cache-Zeit und gleichzeitigem vollautomatischen Update des Browser-Caches bei Änderungen.

    Das Beste auf 2 Welten.

    Lösung für diesen Fall:

    hab ich eben Version 2.8.1 Light eingebaut und funktioniert.

    1. Override des Moduls erstellen
    2. im Override einen Mechanimus einbauen, der die Versionsnummern erzeugt.

      Wir erzeugen von jedem Bild eine Versionsnummer aufgrund des Änderungsdatums, das jagen wir durch crc32 um eine Ausgabe, die nichts weiter verrät, zu erhalten. crc32 ist dazu sehr sehr schnell.

      Die Methode benötigt einen Dateizugriff auf dem Server pro Datei, das sollte aber meist eh gecacht sein, da der Browser diese Bilder ja regelmäßig an User, deren Cache leer oder abgelaufen ist, ausliefern muss. Es ist aus meiner Sicht der ETag-Methode überlegen, da hier kein "Must-Revalidate" erfolgt.

      Dann geben wir den ermittelten Versionsnummern-Code einfach am Bild mit aus:

      Vorschlag:

  • Danke für eure Tipps.

    Um die Arbeit ein wenig zu erleichtern, schiebe ich immer nur die neuen Bilder mit den Dateinamen hoch, die auch in dem Modul Slideshow CK hinterlegt sind. So muss ich nicht jedesmal die Slideshow ändern.

    Den Tipp mit der Cachedauer in der Joomla-Konf werde ich mal ändern, auch wenn diese nicht nur für die Bilder der Slideshow zieht.

    Gruß

    Ulli

  • Den Tipp mit der Cachedauer in der Joomla-Konf werde ich mal ändern, auch wenn diese nicht nur für die Bilder der Slideshow zieht.

    Deshalb ist das eigentlich auch nicht wirklich die Lösung. Außerdem kannst du den Joomla-Cache auch schnell mal leeren.
    Problem sind doch die Browser-Caches. Mögliche Ansätze wurden ja bereits erwähnt.