From: Moritz Bunkus Date: Mon, 16 Nov 2020 16:02:38 +0000 (+0100) Subject: CSS/JS: Git-Revision von HEAD als GET-Parameter verwenden X-Git-Tag: kivitendo-mebil_0.1-0~9^2~637 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/commitdiff_plain/cf96c5880f1ba0694298d7541fedce47c8c99051?ds=inline;hp=cf96c5880f1ba0694298d7541fedce47c8c99051 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=` 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=`. 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. ---