Cache leeren erzwingen !?

  • hey, ich habe die firmenseite für unsere Fernküche erstellt. Hier muss man wöchentlich den neuen Speiseplan als PDF zum Download bereitstellen. Da das meine Mutter erledigen muss, sollte es so einfach wie möglich sein.

    Ich habe in einem Widget also den Downloadlink erstellt (.../speiseplan-aktuell.pdf)

    Meiner Mutter hab ich jetzt erklärt, wie man den aktuellen Speiseplan via FTP hochläd und die Datei auf dem Server überschreibt.

    Leider wird der neu hochgeladene Plan aber nicht erkannt und der alte wird weiterhin angezeigt. Liegt das daran, dass der Alte noch im Cache gespeichert ist?

    Wie kann man erzwingen, dass der Cache der Besucher beim Aufruf der Seite gelöscht wird?

    Oder gibt es vielleicht eine bessere Lösung für das Problem?
    Es wäre sehr unvorteilhaft, wenn meine Mutter jede Woche im HTML-Code des Widgets herumpfuschen müsste :)

    Danke im Voraus,

    Pete

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Aus welchem Cache soll er denn gelöscht werden?
    Dem Usercache? Verarbeitet der Webserver die PDF und speichert den Output in HTML zwischen? Welchen Cache genau? Wie bindest du die PDF ein?

    Im normalfall laden die Leute die PDF onNeed runter, es ist also immer aktuell.

  • Hallo Pete,

    je nach Servereinstellung bzw. geladene Apache-Module kannst du den Browser-Cache mittels .htaccess verhindern.

    Schau mal auf dieser Seite, wie so etwas aussieht bzw. wie das funktioniert.

    Besonders folgender Abschnitt ist für dich interessant:

    Code
    <FilesMatch "\.(pdf)$">
            ExpiresDefault A0
            Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
            Header set Pragma "no-cache"
    </FilesMatch>

    Falls das nicht funktioniert könntest du tricksen indem du einen dynamischen Download-Link via JavaScript erstellst. Der würde dann in etwa so aussehen:

    HTML
    <script type="text/javascript">document.write('<a href=".../speiseplan-aktuell.pdf?r=' + (Math.random() * 10000000000000000) + '" title="Aktueller Speiseplan">Klick</a>');
    </script>

    Beide Beispiele ungetestet ;)

    Viele Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!