rechtstexte für onlineshop
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Umschalten auf neues Template: zerschossene Darstellung beim Kunden

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.869
    • Geschlecht:
    Hallo,

    mal wieder ne Frage an die Experten:
    wenn man ein Template komplett umstellt bzw. Änderungen vornimmt, dann kommen beim Client immer wieder Darstellugnsprobleme vor.

    Erst nach einem kompletten "Refresh" wird die Seite korrekt angezeigt. Bei einem Templatewechsel ist das natürlich wesentlich fataler, da hier jede Menge Anpassungen passiert sind.

    Ebenso wird z.B. ein ausgewechseltes Bild nicht immer sofort angezeigt, sondern erst einmal das alte bis zum "Refresh".

    Nun zu unserem aktuellen Stand:
    - CSS & Javascriptdateien werden per minify ausgegeben.
    - Cache & Templatecache komplett geleert
    - Daten die nicht per minify ausgegeben werden, werden per "filemtime" neu geschrieben.

    Wo kann man ansetzten, damit das verhindert werden kann?!

    Freue mich auf eure Antworten

    Grüße
    Dominik

    Linkback: https://www.modified-shop.org/forum/index.php?topic=31660.0

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.869
    • Geschlecht:
    So,

    ich glaube ich bin dem Rätsel langsam auf der Spur, ich hatte noch alte Dateileichen im tmp-Ordner des Servers, die wohl noch aus den Anfängen mit minify stammen. Das Minify Verzeichnis ist mittlerweile ein anderes gewesen. Aber vielleicht hat das zu dem Fehlverhalten geführt.


    Nun habe ich generell zum Caching aber noch eine Frage, aber so 100% verstehen tu ich es noch nicht:
    in meiner Minify Config habe ich eine Einstellung, wodurch Cache Control max-age auf "31536000 Sekunden" steht, sprich 1 Jahr.

    Verstehe ich das nun richtig:

    Beispiel 1 (max-age 1 Jahr):
    • Kunde (mit gespeicherter Datei im Cache vom 28.10.2014) kommt in den Shop, und sein Browser schickt eine Anfrage, ob eine neue/geänderte Datei vorliegt.
    • Die Datei ist lt. "Zeitstempel" noch heute am 03.12.2014 gültig, was durch max-Age / Last-Modified überprüft wird
    • Die Datei wurde seither nicht verändert
    • Da nicht geändert, lädt Browser die Datei aus dem Browser-Cache

    Beispiel 2 (max-age 1 Jahr):
    • Kunde (mit gespeicherter Datei im Cache vom 28.10.2014) kommt in den Shop, und sein Browser schickt eine Anfrage, ob eine neue/geänderte Datei vorliegt.
    • Die Datei wurde am 15.11.2014 geändert
    • Obwohl Datei zeitlich noch gültig, lädt der Browser dennoch nun die neue Datei in den Cache des Kunden

    Beispiel 3 - max-age auf 1Tag umgestellt:
    • Kunde (mit gespeicherter Datei im Cache vom 28.10.2014) kommt in den Shop, und sein Browser schickt eine Anfrage, ob eine neue/geänderte Datei vorliegt.
    • Die Datei ist seitdem nicht verändert worden
    • Da allerdings heute der 03.12.2014 ist, wird dennoch die neue Datei vom Browser des Kunden in den Cache geladen, da abgelaufen (aufgrund max-age = 1 Tag)

    Ist das so richtig, oder habe ich da einen Denkfehler?

    Grüße
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Stimmt so nicht. Bei Beispiel 1 und Beispiel 2 hast du keine Garantie, dass die neue Datei geladen wird (ich hab das genaue Cache-Verhalten der Browser grad nicht greifbar, aber in beiden Fällen wird sehr wahrscheinlich die Datei aus dem Festplattencache genommen).
    Beispiel 3 funktioniert. Aber nur, wenn der User schon vorher die Datei mit max-age 1 Tag im Cache hatte.

    Lösung: Du willst Cache-Busting nutzen.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.869
    • Geschlecht:
    Okay, das Cache-Busting funktioniert ja dann immer soweit sich z.B. dann durch filemtime der Dateiname ändert, richtig? Das habe ich ja, soweit notwendig (alle Skripte/CSS die nicht durch minify laufen).

    Und bei Minify wird ja bei jeder Änderung sowas ähnliches verwendet:
    Zitat
    Minify finds the latest modification time of all the source objects (filemtime for files, so if you use a tool that doesn't update this, you might need to touch your modified files).

    Somit sollte das doch schon eigentlich alles "regeln"?

    Kann es einfach sein, dass die Dateileichen mir einen Strich durch die Rechnung gemacht hatten?

    Grüße
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Da ich nicht weiß welches minify-Script du nutzt ist es schwer dazu eine generelle Aussage zu treffen, ob Dateien in /tmp ein Problem sind oder nicht.

    Wie sehen denn deine von minify generierten URLs aus?

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.869
    • Geschlecht:
    Also das minify, welches ich benutze ist: https://code.google.com/p/minify/

    Ansonsten schaut die url dann halt so aus:
    Code: Text  [Auswählen]
    www.example.com/min/g=general_js

    Und die aufgerufene Datei hat einen Namen à la:
    minify_g=general_js_06a32388cc9a99d9d68bba2de001119f.gz

    Sobald ich was ändere, bekommt die einen anderen Namen....

    Grüße
    Dominik

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.869
    • Geschlecht:
    Okay, es stimmt:
    die Daten werden automatisch aus dem Cache des Browsers genommen, da diese noch gültig sind.

    Wie aber kann ich das denn nun umgehen für die Zukunft, dass aus einer URL wie
    Code: Text  [Auswählen]
    www.example.com/min/g=general_js
    mit filemtime oder so versehen werden kann!?

    Grüße
    Dominik

    Matt

    • Experte
    • Beiträge: 4.241
    Dein Dateinamen muss Bestandteile beinhalten, die den Cache dazu veranlassen, neu anzufragen. Das kann man über einen GET-Parameter lösen oder über eine Änderung des Dateinamens inkl. Rewrite-Rule:
    Wir schreiben z.B.
    http://cdn-co.wstatic.com/templates/erzgebirge/styles-yui-min-1415705733.css
    mit
    RewriteRule (.*)-([0-9]+)\.css$ $1.css [L]passend um. Die Zahlen sind dabei die filemtime.

    Das File selbst ist templates/erzgebirge/styles-yui-min.css
    Trade Republic - Provisionsfrei Aktien handeln
    12 Antworten
    5807 Aufrufe
    23. Oktober 2013, 13:42:56 von burrito
    2 Antworten
    1800 Aufrufe
    02. September 2016, 21:09:39 von Modulfux
    3 Antworten
    3159 Aufrufe
    04. September 2009, 21:30:47 von markies
    2 Antworten
    2267 Aufrufe
    13. Juni 2013, 10:00:59 von papamac
               
    anything