Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision cf96c588

Von Moritz Bunkus vor etwa 4 Jahren hinzugefügt

CSS/JS: Git-Revision von HEAD als GET-Parameter verwenden

Webbrowser cachen CSS & JS sehr aggressiv. Das ist während der
Entwicklung störend, weshalb es bereits seit langem die
Konfigurationsoption `auto_reload_resources` gibt. Ist diese an, so
wird an alle CSS- und JS-URLs ein GET-Parameter `?rand=<Zufallswert>`
angehängt wird, um das Cachen auszuhebeln.

Dieser Commit führt etwas Ähnliches ein, das für den Produktivbetrieb
ohne `auto_reload_resources` gedacht ist. Wenn kivitendo erkennt, dass
es aus git heraus läuft (also ein `.git`-Verzeichnis existiert), so
parset es die Revision von `HEAD` und nimmt das als GET-Parameter
`?rand=<Revision>`. Der Vorteil ist, dass nach Updates einer
Produktivinstallation die Webbrowser der Anwender*innen genau einmal
alle Ressourcen neu laden, weil sich ja die Git-Revisionsnummer
geändert hat. Anschließend können sie die Ressourcen aber wieder
normal cachen, bis das nächste Update kommt.

Es wird hierfür übrigens kein installiertes git-Executable benötigt;
die Infos werden zwecks Performance direkt aus den Dateien gelesen,
anstatt bei jedem Request ein Programm auszuführen.

Zukünftig könnte man ein analoges Verfahren anwenden, wenn es kein
`.git`-Verzeichnis gibt, und dann zumindest die
kivitendo-Versionsnummer verwenden.

  • hinzugefügt
  • geändert
  • kopiert
  • umbenannt
  • gelöscht