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.706
355
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
529
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.706
355
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.706
355
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.706
355
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.628
2.685
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.628
2.685
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.706
355
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.628
2.685
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 Erfahrungen mit DHL Paket International Premium Tarife in der JTL-Shipping-Cloud ? JTL-ShippingLabels - Ideen, Lob und Kritik 1
Seit Update ständiges Aufhängen der Wawi JTL-Wawi 2.0 0
Barzahlung wird nach dem Speichern beim Rechnungsdruck nicht angezeigt, in der Vorschau jedoch schon JTL-Wawi 2.0 0
Neu JTL-Shop 5.5 – „Rechnung nicht beilegen“ per Workflow anhand der Auftragsposition erkennen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Nutzlose Tabellenspalte bei Inventur innerhalb der Wawi User helfen Usern - Fragen zu JTL-Wawi 1
Neu Kunde hat über POS per Karte angezahlt. Wie Buchung der Restzahlung (BON)? Allgemeine Fragen zu JTL-POS 1
Neu Versandarten – bin ich der Einzige, der da jedes Mal verzweifelt? Allgemeine Fragen zu JTL-Shop 1
Neu Außlandsversand deaktivieren wegen der neuen PPWR Betrieb / Pflege von JTL-Shop 22
Neu onpage SEO auf SW - Was ist mit der Wawi? Shopware-Connector 1
Neu Gutscheinartikel nur noch im Shop in der Datenbank Betrieb / Pflege von JTL-Shop 0
Neu Bestellpositionen werden in Sprache der Kunde an die Wawi übermittelt. Kann man das ausstellen? User helfen Usern - Fragen zu JTL-Wawi 17
Neu GLS in Shipping 2.0: Neue ShipIT-Anbindung & zentrale Tarife jetzt live – Migration von der alten WebAPI bis zum 30. September News, Events und Umfragen 5
Neu Amazon Versandart matchen in der Wawi Amazon-Lister - Fehler und Bugs 2
Nachkommastellen in der X Rechnung JTL-Wawi 1.10 1
Format der E-Mail Adresse ist ungültig. Otto.de - Anbindung (SCX) 0
Neu JTL-Shop 5.7.2: Unterschiedliche Standardsprachen in tsprache – widersprüchliche Canonical- und Hreflang-Ausgabe der Startseite Allgemeine Fragen zu JTL-Shop 4
Neu Deine Meinung ist gefragt: direkte Anbindung der Schweizerischen Post (CH Post) in Shipping 2.0? Umfragen rund um JTL 2
Neu Cross-Links in der Navigation Allgemeine Fragen zu JTL-Shop 1
Neu Artikeletikett drucken: Automatische Mengenermittlung der zu druckenden Etiketten Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Länge der Beschreibung unter den Unterkats Templates für JTL-Shop 2
Kein Skonto in der XRechnung? JTL-Wawi 1.11 0
Neu Mail mit Plugin zum testen der Sicherheitslücke echt? Allgemeine Fragen zu JTL-Shop 47
B2B Market - Probleme beim zuweisen der Kundengruppe (gelöst) JTL-Wawi 1.11 0
Neu Amazon - Einlesen / Übernahme der Bestellungen klappt nicht ?! Amazon-Anbindung - Fehler und Bugs 2
QR-Code auf der Rechnung gibt 100-fachen Betrag des eigentlichen Rechnungsbetrages aus JTL-Wawi 2.0 5
Fehlermeldung beim Einlesen der Buchungen in JTL Fibu JTL-Wawi 2.0 2
Neu Wird irgendwo in der Datenbank geloggt welcher WMS-Mobile Benutzer mit dem MDE-Gerät einen Auftrag, bzw. Pickliste gepickt hat? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Gibt es in der WaWi-Datenbank einen Zeitstempel, der anzeigt wann ein Kunde sich in einem bestimmten Shop registriert hat? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Amazon.com - kein Abgleich der Bestände Wawi 1.11.9 Amazon-Anbindung - Fehler und Bugs 0
Name der Versandarten wird im Auftrag sporadisch nicht mehr angezeigt (2.0.3) JTL-Wawi 2.0 3
Neu Wawi 1.11. Amazon Rechnungen (extern) in der Kundenansicht verschwunden ?! User helfen Usern - Fragen zu JTL-Wawi 2
Neu Der wahrscheinlich östlichste JTL Servicepartner: Standortvorteil, faire Preise und vieles mehr Dienstleistung, Jobs und Ähnliches 16
Neu Eigener Export - Kunden individuelle Preise + verfügbarer Bestand + VK netto der Kundengruppe User helfen Usern - Fragen zu JTL-Wawi 6
Neu Rechnungen zeigen Paypal Text an, obwohl er in der Vorlage nicht ausgewählt ist JTL-Wawi 2.0 3
Updatezwang beim öffnen der WAWI JTL-Wawi 1.6 13
Neu Produktionsaufträge tauchen nicht in der Workbench auf JTL-Plan&Produce - Fehler und Bugs 2
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
Neu Paypal 2.2.1; Fehler "Der Zahlungsanbieter hat eine Anmeldung gefordert" Plugins für JTL-Shop 2
Neu Sortierung der Variationswerte funktioniert nicht mehr Shopify-Connector 19
Neu Wert aus „Eigenes Feld“ eines Artikels im Lieferschein unter der Artikelbezeichnung anzeigen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Rabatte aus dem JTL-Shop werden in der Wawi nur als Netto-Preis übernommen, Rabatt % gehen verloren Onlineshop-Anbindung 2
Freie Felder in der Artikelliste anzeigen JTL-Wawi 2.0 3
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu Erstellung der Sitemap bei WaWi Abgleich funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu Unterschiedliche Abnahmeintervalle von Variationskombinationen in der Warenkorbmatrix Templates für JTL-Shop 0
Neu Betrag auf der Rechnung nach Rechnungskorrektur User helfen Usern - Fragen zu JTL-Wawi 1
Neu PDF Anhänge in der Bestellbestätigung anhängen missglückt JTL-Shop - Fehler und Bugs 1
Neu Anzahl der URLs in der Sitemap ändern Allgemeine Fragen zu JTL-Shop 3

Ähnliche Themen