2017-12-18 5 views
-1

Ich habe this script auf meiner Squarespace-Website mit der wexley-Vorlage implementiert, damit Bilder in einer Galerie als Links fungieren (Wexley unterstützt nativ keine Click-through-URLs).JavaScript funktioniert nicht bei der Aktualisierung - muss den Cache leeren

Es funktioniert gut, aber wenn ich Thumbnails zur Galerie hinzufügen, wird es nicht funktionieren, bis der Browser-Cache gelöscht ist.

Ich frage mich, ob es eine Möglichkeit gibt, das zu beheben? Vielleicht durch:

1) Festlegen eines Ablaufs im Cache? Ich bin nicht im Entwickler-Modus, so dass dies in eine Header-Injektion gehen müsste

2) Versionierung? Ich habe versucht, das Javascript als Datei an anderer Stelle auf meiner Website zu hosten. Dies funktionierte (es zog das Skript von einem anderen Ort), aber immer noch das gleiche Problem, auch wenn ich eine neue Skript-Datei hochladen und darauf zeigen, nach der Aktualisierung der Seite!

Antwort

0

Sie können den Client zwingen, das Feld erneut herunterzuladen. Um dies zu erreichen, müssen Sie den Client-Browser so einstellen, dass er das Skript nicht im Cache hat. Sie können dies tun, um den Dateinamen zu ändern.

Imagine haben Sie diese Ordnerstruktur:

  • index.html
  • index.js

Wenn in Ihrem index.html Sie verweisen das Skript wie src="index.js" Sie Kunden zwingen kann nur zum Download apendding eine Abfragezeichenfolge für den Import: src="index.js?0"

Jetzt Client-Browser überprüfen, ob diese Datei ist im Cache, und da es nicht ist, werden sie vom Server holen.

+0

Leider hat dies nicht funktioniert. Es scheint, dass mir etwas fehlt. – paulcook

+0

Hier ist, was ich getan habe (Squarespace): 1) Erstellt eine "Gallery Page" und fügte 1 Foto mit einer "Click-through URL" zu einer gefälschten Seite. 2) Eine neue Seite namens JS Files erstellt und von dort das Skript als "linktest.js" hochgeladen 3) In der "PAGE HEADER CODE INJECTION" hinzugefügt 4) Eröffnet die Seite in Safari. Das Vorschaubild funktionierte wie erwartet (erster Besuch). 5) Ein weiteres Thumbnail mit einem gefälschten Link hinzugefügt und in in der Code-Injektion 6) Reloaded in Safari - zweite Daumen funktionierte nicht, Cache löschen, aktualisieren, arbeitete – paulcook

+0

Sah noch einmal mit Safari und bemerkte, dass das Skript selbst nicht zwischengespeichert wird, so etwas anderes ist und Das verhindert, dass das Skript in der Galerie ordnungsgemäß funktioniert. – paulcook

0

Überprüfen der Ressourcenladung auf meiner Seite Ich erkannte, dass das Skript nicht zwischengespeichert wurde, so dass es etwas anderes war, das zwischengespeichert wurde, das störte.

Da ich nicht im Dev-Modus bin, habe ich einen Fix implementiert, der darauf beruht, die URL mit dem Datum der Aktualisierung anzuhängen und dann 301 Weiterleitungen einzurichten.

Die URL und Weiterleitungen (insgesamt 2) müssten aktualisiert werden, wenn Inhalte hinzugefügt werden.

Wenn jemand Probleme mit diesem (in Bezug auf SEO oder etwas Unbekanntes) sieht, würde ich mich über Ihr Feedback freuen.

Verwandte Themen