Neu cache busting der JS / CSS files von plugins / templates

Toskan

Mitglied
28. August 2019
25
2
wenn ein plugin JS file geladen wird sieht das so in den chrome dev tools aus

myjsfile.js?v=4.06

4.06 nehme ich an, kommt vom shop? e.g. die shop version ist 4.06

gibt es für mich eine möglichkeit, das javascript file zu updaten ohne einen komplett neuen Versionsfolder anzulegen?


wie stehts bei template files? momentan wird das ja etwa so geladen:

/templates/evo-child/css/mytheme.css?v=4.06

wieder, 4.06

wenn ich mein css erneure, möchte ich natürlich selbst die Versionszahl erhöhen, sonst zerbricht ja alles.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.671
338
Ich verstehe ehrlich gesagt Deine Frage nicht. Du kannst deine JS-Dateien jederzeit updaten. Der Wert des Parameters wird aus der PHP Konstante "JTL_VERSION" gezogen und spielt bei einem Update keinerlei Rolle. Es soll Dir nur suggerieren, welche Shopversion im Einsatz ist.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
528
Halle
Hallo,
gibt es für mich eine möglichkeit, das javascript file zu updaten ohne einen komplett neuen Versionsfolder anzulegen?
Wenn du Änderungen an einem Plugin vornimmst die "released" werden musst du auch die Version anpassen, sprich einen neuen Versionsordner anlegen. Dieses Vorgehen ist ja unabhängig davon, ob du ein komplettes Refactoring machst oder nur einen Bug in einem Javascript-File behebst.
Das v=xxx wird vom Shop an Template-Resourcen angehängt, um den Browser bei einem Template-Update zu zwingen die Resourcen neu zu laden und nicht aus dem Browser- Cache zu holen.
Beim Entwickeln musst du halt deinen Browser durch Hard-Reloads dazu bewegen die geänderten Datei statt der Cache-Versionen zu laden.
 

Toskan

Mitglied
28. August 2019
25
2
Hallo,

Wenn du Änderungen an einem Plugin vornimmst die "released" werden musst du auch die Version anpassen, sprich einen neuen Versionsordner anlegen. Dieses Vorgehen ist ja unabhängig davon, ob du ein komplettes Refactoring machst oder nur einen Bug in einem Javascript-File behebst.

also das plugin wird ja nur intern verwendet in unsrem eigenen Shop. Man muss dann nicht für jeden kleinen fix ein release machen.

"Das v=xxx wird vom Shop an Template-Resourcen angehängt, um den Browser bei einem Template-Update zu zwingen die Resourcen neu zu laden und nicht aus dem Browser- Cache zu holen. "
Ok also ich habe es gefunden, es ist der Eintrag
<Version>4.06</Version>

im template.xml
den kann ich dann auf 455 oder was auch immer setzen...

obendrauf muss ich dann noch btw in den admin bereich, und dort ins template, in die einstellungen, und dann speichern drücken, dann zieht es die neue version nummer, und busted den cache.


das busted dann auch den cache von den plugins.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.671
338
Vergiss doch mal die Version, die ist nur für den Cache relevant. Wenn die Ressourcen verändert werden, dann werden diese auch direkt ausgerollt, egal was da für eine Version hinten dran hängt.
 

Toskan

Mitglied
28. August 2019
25
2
Vergiss doch mal die Version, die ist nur für den Cache relevant. Wenn die Ressourcen verändert werden, dann werden diese auch direkt ausgerollt, egal was da für eine Version hinten dran hängt.
alle wiederkehrenden Kunden sehen die neue Version natürlich nicht es sei denn sie machen einen hard reload oder eben du erhöhst die Version. Und welche Kunden machen schon einen hard reload? d.h. das erhöhen der Version ist sehr wichtig, es sei denn dir ists egal ob die wiederkehrenden Kunden deinen shop nicht mehr benutzen können
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.671
338
Du kannst die Version aber nicht ändern. Was machst du nun? Richtig, den Template und Objektcache leeren.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.671
338
lieber martin

ja du kannst die template version ändern, ist weiter oben beschrieben wie.

Vorsicht:
die version darf nicht
1.00 sein, oder 1.01
Weil .00 wird ignoriert
du kannst
100
oder 101 etc benutzen
einfach kein punkt afaik
Ich bin Servicepartner, ich verkaufe Templates und passe Templates nach Kundenwunsch hin an. Ich weiß daher, dass man die Version in der template.xml ändern kann. Aber das ist im Falle von Anpassungen an js- oder css-Dateien absolut NICHT notwendig. Template- Cache im Admin leeren, dann zieht sich der Browser auch entsprechend die neuen Versionen. Oder willst Du jetzt für jede noch so kleine Änderung die Version hochsetzen? Ist doch Blödsinn.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.312
2.508
Berlin
Firma
css-umsetzung
Der Browser- Cache bekommt davon aber nichts mit, daher bin ich vereinzelt dazu übergegangen, z.B. Teile des Datums und der Zeit mit zu übergeben. Tag und Stunde Beispielsweise.
 

Toskan

Mitglied
28. August 2019
25
2
manchmal reg ich mich auf ohne Grund.
Ich habe gemerkt, dass der ansatz, dass ich egal wie alt oder erfahren, einfach immernoch am Lernen bin. Seither bin ich viel entspannter

@css-umsetzung ich denke wenn du den browser cache immer busten willst, kannst du das auch per htaccess / nginx config machen. Der expires header wird wohl dort gesetzt. Aber: wo bustest du den cache mit dem Datum? in den template files meine ich. Dann kann ich das auch überschreiben mit einer Version damit muss ich dann nicht immer ins Backend um speichern zu drücken, das war mir bisher immer lästig.

@martinwolf
mal schauen ob ich hier ein image einfuegen kann
1567521058730.png

fangen wir unten rechts an, da steht Code 200 (from disk cache) das heisst das der browser eben nicht zum server verbindet und schaut ob es eine neue version gibt
warum macht der das denn nicht?
oben drueber

expires Wed 02 Oct

darum nicht. der jtl shop verteilt also die css und js files mit dem Hinweis dass die files eben erst in einem Monat erneuert werden muessen. Bis zu dem Datum, wird nix erneuert vom Browser, der behaelt die Files einfach bis dann.

also da muss man im Detail dann noch etwas aufpassen, max-age hat auch einen Effekt.

sobald das wie oben links markierte v=1 auf v=2 wechselt, meint der Browser "Oh, eine neue Datei" und kann dann also zwangsweise nicht eine lokal gecachte version ziehen.


Caching ist also gut. Man sollte auch nicht ein monat cachen sondern ein Jahr imho.

was imho eine bessere Lösung wäre:
einfach die Version in der shop config setzen e.g. ich glaub es war

config.JTL-Shop.ini.php

und die version dann jeweils irgendwie im template zum js / css load attachen statt der template version.
zum entwickeln kannst ja hard reloaden...
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.312
2.508
Berlin
Firma
css-umsetzung
Wenn du das über die htaccess machst, ist deine Bewertung bei Google (pagespeed) fürn Ars...

Das ist eine einmalige Sache im Template und wird über $smarty.now geregelt.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.671
338
Für Anpassungen an den Ressourcen könnte man die Cache Control auch runterfahren und anschließend wieder auf 1 Jahr hoch setzen, nachdem die neuen Versionen im Cache liegen. Aber mir an sich vollkommen egal wie Du es machst. Nimm den weg der für Dich am komfortabelsten ist.
 

Toskan

Mitglied
28. August 2019
25
2
Wenn du das über die htaccess machst, ist deine Bewertung bei Google (pagespeed) fürn Ars...

Das ist eine einmalige Sache im Template und wird über $smarty.now geregelt.

hmm also Caching ist mir wichtig, ich würde das also niemals ausschalten es sei denn, auf einem Dev shop oder so. Die ganzen riesigen JS und CSS files, das runter zu laden immer auf jedem request macht alles schon langsamer...

wenn ich dich richtig verstanden habe, verarscht du den page load speed benchmark einfach? e.g. du gibts datum und uhrzeit an alle files mit, der benchmark sieht dann "die files sind ein monat gültig, ist gut, pass" beim nächsten request haben die files dann aber ein neues Datum Uhrzeit udn der cache wird auf jedem request gebusted?

besser wäre das last modified date vom file auszulesen und das zu attachen e.g. v=datefilelastmodified, das ist halt auch nicht immer sicher, weil das wird je nachdem auch nach einem upload nicht erneuert (das Datum).

der einfachste mittelweg wäre es imho wirklich eine simple versions nummer die du halt hochsetzen musst mit dem Nachteil momentan, dass man halt ins backend muss immer, e.g. musst mehrere Sachen machen um die Versionsnummer zu erhöhen was etwas lästig ist.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.312
2.508
Berlin
Firma
css-umsetzung
wenn ich dich richtig verstanden habe, verarscht du den page load speed benchmark einfach? e.g. du gibts datum und uhrzeit an alle files mit, der benchmark sieht dann "die files sind ein monat gültig, ist gut, pass" beim nächsten request haben die files dann aber ein neues Datum Uhrzeit udn der cache wird auf jedem request gebusted?

In den früheren Versionen habe ich auch die .htaccess erweitert, weil der cache da normal nur auf 86400 stand, über eine kleine Modifikation konnte ich den auf ein Jahr hochschrauben damit Google sich nicht ständig beschwert
-> RewriteRule ^asset/(.*)$ includes/libs/minify/?g=$1&1234 [L]

Du siehst das auch falsch, der User bekommt davon ja nichts mit, es ist wenn er drei Tage später kommt nur das erste Laden (so wie wenn er wie alle anderen das erste mal auf die Seite kommt) weil er das JS und das CSS neu cached.
danach bzw. innerhalb von einer Stunde hat er den gleichen cache wie ohne meine Modifikation.

Google denkt weiterhin das alles schön ist weil Google sich nur für die Cache Zeit interessiert aber nur so kannst du einigermaßen sicherstellen das ein User das aktuelle CSS und JS hat.
Ich mache das auch nur auf Seiten wo ständig Änderungen sind und es ist einfacher als ständig und sinnlos eine Versionsnummer hochzuzählen.

Ich glaube Themeart oder Salepix haben in Ihren Templates extra ein Feld eingebaut in dem du eine Nummer hochzählen kannst wenn du Änderungen vorgenommen hast, geht auch aber du musst immer daran denken.
 
  • Gefällt mir
Reaktionen: Toskan
Ähnliche Themen
Titel Forum Antworten Datum
Neu Probleme mit Cache Einstellungen / HTTP 500 - memory limit exceeded JTL-Shop - Fehler und Bugs 9
Neu Artikelfilter: CACHING_GROUP_FILTER – wo wird der Cache invalidiert? JTL-Shop - Fehler und Bugs 0
Neu 1000te Zugriffe aus der ganzen welt auf applepay.php Allgemeine Fragen zu JTL-Shop 2
Neu Fehlermeldung nach der Umstellung von DHL Versenden 4.0 JTL-Track&Trace - Fehler und Bugs 0
Neu Anzeigen der Zahlungsart, die bei der Zahlung gesetzt wird Eigene Übersichten in der JTL-Wawi 10
Gelöst Bekannte Störung: Fehler "Der Inhaltstyp text/html stimmt nicht mit text/xml überein" bei der Labelerstellung JTL-ShippingLabels - Fehler und Bugs 1
Neu Praktiker: Ende der Beta-Phase User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTW Wawi hängt beim Bearbeiten der Druckvorlage für Mahnungen User helfen Usern - Fragen zu JTL-Wawi 0
Lieferadresse entspricht der Rechnungsadresse - vorausgewählt Checkout Einrichtung JTL-Shop5 2
Neu Anzeige Kategorie Pfad in der Übersicht User helfen Usern - Fragen zu JTL-Wawi 1
Neu Reihenfolge der Länder (bei der Versandkostenberechnung) Betrieb / Pflege von JTL-Shop 2
Neu CSS GeoIP MwSt.-Finder 2.7.1 verhindert das Anlegen von Shop-Kundenkonten aus der Wawi Plugins für JTL-Shop 1
Prüfung der UST-ID-Prüfung schlägt fehl. (Innergemeinschaftliche Lieferung) JTL-Wawi 1.8 2
Neu Name der Versandart im Shop anzeigen Allgemeine Fragen zu JTL-Shop 36
Neu Amazon Abgleich - seit heute 12:26Uhr keine Übernahme der Bestellungen über Worker Amazon-Anbindung - Fehler und Bugs 9
Artikelbezeichnung auf der Rechnung anpassen von "Artikelname" in "Kurzbeschreibung" JTL-Wawi 1.10 4
Neu Fehler 35 XLM entspricht nicht der Konvention Plugins für JTL-Shop 4
Neu Schelle Peisänderung in der Tabellenansicht möglich? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Update der Version 1.2.2.2 auf eine aktuelle Installation von JTL-Wawi 9
Neu Abbruch auf der Plattform löscht nicht mehr den Auftrag Arbeitsabläufe in JTL-Wawi 3
Neu Anzeige / Summe der Aufträge zu den Auftragspaketen in der Rechnung ?! User helfen Usern - Fragen zu JTL-Wawi 8
Neu QR Code Ausdruck der TSE Einrichtung / Updates von JTL-POS 0
Automatische Berechnung der Artikelmenge wenn Verkaufseinheit qm ist JTL-Wawi 1.10 4
Neu Der Auftrag wird nicht ausgeliefert. Der Auftrag befindet sich bereits auf einer anderen Pickliste. User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bankverbindung in der Wawi ändern - Bankwechsel Installation von JTL-Wawi 2
Neu Fehler mit der Kartenzahlung Einrichtung / Updates von JTL-POS 9
Neu Artikel aus Shopware in der Wawi importieren und WMS redy machen Shopware-Connector 0
"Fehler beim Laden der Daten" in Liste Aufträge und Rechnungen JTL-Wawi 1.11 4
Neu Export der Umsätze kummuliert Allgemeine Fragen zu JTL-POS 0
Neu Der-Kurier anbindung an JTL JTL-ShippingLabels - Ideen, Lob und Kritik 3
Neu Fehler bei Artikel Filter in der Wawi JTL-Wawi - Fehler und Bugs 2
Neu Auffüllen der Tabelle Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Google Merchantcenter - Download der Shoppingfeeds nicht mehr möglich Allgemeine Fragen zu JTL-Shop 6
Neu Übertragung an DATEV mit Besonderheit der Kasse (LS-POS) User helfen Usern - Fragen zu JTL-Wawi 0
Neu Einen Artikel in der POS in zwei MwSt. Varianten abbilden Allgemeine Fragen zu JTL-POS 3
Nach Update auf 1.11.6 werden die Preisänderung nicht mehr von der Wawi an Amazon übertragen JTL-Wawi 1.11 0
Wareneingänge werde nicht mehr in der Liste der Korrekturbuchungen angezeigt? JTL-Wawi 1.11 1
Bankverbindung in der xml ZugFerd ändern je nach Zahlungsart JTL-Wawi 1.11 5
Webinar: Strategien der E-Commerce-Leader - wie unterschiedliche Produktrollen Umsatz und Marge steigern Messen, Stammtische und interessante Events 0
Neu Feedbackrunde zur Umsetzung der Verpackungsverordnung (PPWR) in JTL-Wawi Umfragen rund um JTL 1
Neu Wo ist der Worker Status hin? Bei mir ist in Version 1.11.4 nicht mehr zu finden? User helfen Usern - Fragen zu JTL-Wawi 7
Neu Karussell gehen auf der Startseite nach Update auf 5.6.1 nicht mehr Betrieb / Pflege von JTL-Shop 8
Neu Eingabefeld der PayPal Kreditkartenzahlung wird bei eingeloggten Kundenkonto nicht angezeigt JTL-Shop - Fehler und Bugs 1
Neu Text unter der Rechnung User helfen Usern - Fragen zu JTL-Wawi 2
Neu Lieferschein Nummer wird auf der Rechnung wird komisch angezeigt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu Für jeden Artikel Bild1 löschen mit der Ameise JTL-Ameise - Ideen, Lob und Kritik 3
Der ganze Betrieb hat keinen Zugriff auf JTL Wawi 1.11.4 meh JTL-Wawi 1.11 10
WMS Nachdruck Änderung der Versandart nicht mehr möglich JTL-Wawi 1.11 0
Neu angelegte Lieferantenbestellungen nicht sichtbar in der Übersicht Beschaffung JTL-Wawi 1.10 1
Wichtig Änderungen bei der Installation des Shopify Connectors ab 01.01.2026 Shopify-Connector 0

Ähnliche Themen