Wieso 'expirationDate' => TIME_NOW + 3600 in MediaPage

  • Affected Version
    WoltLab Suite 5.4
    Affected App
    WoltLab Suite Core

    Bei der Ausgabe von Medien wird ein fixer Cache von einer Stunde gesetzt. Gibt es dafür einen Grund?


    Ich nutze Medien nicht nur in Artikel, sondern binde über die Medien hochgeladene Bilder auch seitenübergreifend ein. Diese Bilder ändern sich aber nicht jede Stunde, deswegen ist diese Cache-Policy irgendwie sinnlos gewählt (für mein Anwendungsfall).


    Das Überschreiben per .htaccess

    Code
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    [...]
    </IfModule>

    hat leider keine Auswirkung.


    Grüße

    • Official Post

    Hallo,

    Bei der Ausgabe von Medien wird ein fixer Cache von einer Stunde gesetzt. Gibt es dafür einen Grund?

    Der Wert wurde in https://github.com/WoltLab/WCF…a785344c23014d2d197ae14ae als Bestandteil von


    Support replacing existing media files by Gravatronics · Pull Request #3403 · WoltLab/WCF
    Close #2922 I am open for better solutions for https://github.com/WoltLab/WCF/pull/3403/files#diff-b293f4e4dbf3acf0a27e7e999a091c9aR191-R195.
    github.com


    festgelegt. Viel größere Werte kann man da nicht sinnvoll generisch wählen, damit Medien halbwegs zuverlässig austauschbar bleiben.


    Du solltest mit einem Event-Listener auf der MediaPage die Einstellungen des FileReaders nach deinen Wünschen modifizieren können [1].


    [1] Grundsätzlich sind die Tage des FileReaders mit der Umstellung auf PSR-7-Klassen für die Antworten auch gezählt, da diese genau den gleichen Anwendungsfall deutlich besser abbilden.

    Das Überschreiben per .htaccess

    Von einem Überschreiben von Headern (egal ob Cache oder andere sogenannte „„„Optimierungen“““) per .htaccess rate ich mit aller Deutlichkeit ab, siehe:


    • Official Post

    Hallo,


    die Frage geht von einer falschen Prämisse aus. Ich bin nicht speziell gegen das längerfristige Caching per .htaccess, ich bin gegen alle Formen von manuellen Änderungen per .htaccess (oder Webserver).


    Die Gründe dafür stehen eigentlich schon im oben verlinkten Beitrag. Ich hatte auch an anderer Stelle bereits auf diesen Beitrag verwiesen (mit den passenden Stichworten solltest du vermutlich etwas über die Forensuche finden, wenn du nach Beiträgen von mir filterst).

  • Wer es auch benötigt (Achtung: Wer öfters die "Medien ersetzen"-Funktion nutzt, gerät hier ggf. in ein Problem):


  • Der Wert wurde in https://github.com/WoltLab/WCF…a785344c23014d2d197ae14ae als Bestandteil von

    Wundert mich eh, wieso das so unfertig gelöst wurde. Wieso nicht einfach alle Dateien 30+ Tage cachen und dafür einfach wie an anderen Stellen auch den Timestamp der letzten Aktualisierung der Datei an die URL (Media::getLink, Media::getThumbnailLink) hängen?


    Dazu müsste man den Link zu jeder Medien-Datei natürlich auch immer prominent im ACP darstellen, was aktuell leider auch nicht der Fall ist.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!