Ich verwende nur Drupal 7, das in CSS / JS-Aggregation integriert ist. Der Ordner "files", in dem sich die Dateien "css.gz" und "js.gz" befinden, füllt sich jedoch ziemlich schnell, und ich bin mir sicher, dass es noch eine Weile dauern wird Bevor es anfängt, das Laufwerk vollständig zu füllen, ist jetzt so viel Zeit wie möglich, um die Situation in den Griff zu bekommen.
- Die aktuelle Anzahl der Dateien in / js beträgt 335
- Die aktuelle Anzahl der Dateien in / css beträgt 451
Gibt es eine Standardmethode, die ich anwenden sollte, um mit dieser Situation umzugehen? Ich würde eine Lösung vorziehen, die den Drupal auf dem Laufenden hält.
Darüber hinaus sehe ich, dass viele der gz-Dateien andere als gz-Dateien haben. Gibt es einen Grund, warum sowohl CSS- als auch CSS.gz-Dateien aufbewahrt werden? Degredation vielleicht?
Vielen Dank
Antworten:
Dies ist eigentlich beabsichtigt, damit zwischengespeicherte Seiten mit älteren Dateiversionen nicht beschädigt werden. Siehe diese geschlossene Ausgabe .
TL; DR: Sie werden automatisch 30 Tage (oder auf was auch immer Ihre
drupal_stale_file_threshold
Variable eingestellt ist) gelöscht , nachdem sie überdrupal_clear_css_cache()
und erstellt wurdendrupal_clear_js_cache()
. Die Lösung besteht also darin, dendrupal_stale_file_threshold
Wert auf einen Wert zu ändern, der unter den Standardwerten von 30 Tagen liegt.drupal_delete_file_if_stale()
Der Standardwert ist 30 Tage. Wenn also a) Cron ordnungsgemäß ausgeführt wird und b) aggregierte Dateien angezeigt werden, die älter als 30 Tage sind, liegt ein anderes Problem vor.variable_get('drupal_stale_file_threshold', 2592000)
ist der 30-Tage-Scheck.variable_set('drupal_stale_file_threshold', 172800)
würde das Timeout auf zwei Tage ändern. Auf einer Site, auf der die Cache-Verarbeitung streng kontrolliert wird, kann die Zeit sogar noch kürzer sein.Quelle: http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_build_css_cache/7
Siehe
drupal_delete_file_if_stale()
für weitere Informationen.Sehen Sie auch,
drupal_build_js_cache()
was fast identisch ist mitdrupal_build_css_cache()
.quelle
Nach 4 Jahren muss ich mit der ersten Antwort nicht einverstanden sein, wo der Autor sagt:
Möglicherweise wurden einige Dinge in der Aggregationsbereitstellung älterer Dateien geändert / optimiert. Wenn ich jedoch eine ältere Datei manuell auf dem Server unter files / advagg_js lösche (was ich anscheinend immer noch in einem meiner Browser verwende), wird das anschließende Neuladen der Seite neu gestartet Genau dieselbe Datei mit dem kürzlich hinzugefügten Javascript-Quellcode, als ob
drupal_build_js_cache()
sie für diesen aggregierten Dateinamen ausgeführt worden wäre.z.B.
js__22qMV1d_G25luSFBkuR7bIuKD5FE80eKuXx6ldibEixg__yjA2JTeF2f1LUJ3PMdjMr8k9nOPZQJIcvVw-c5Gz_yc__FY0NTHFBVMd9MIGE5srDXTejEZGP-ccSH7UX2zImN-0.js
Ich schließe daraus, dass das Festlegen einer signifikanten
drupal_stale_file_threshold
Reduzierung keine Probleme verursachen würde, und selbst das Löschen aller aggregierten Dateien, gefolgt von einem Cache-Leeren, erzwingt eine Neubildung der Aggregate (getestet und bestätigt beim Neuladen von Seiten).quelle
Könnte so etwas sein:
Diese PHP-Funktionen können Ihnen helfen, den Code nach Ihren Wünschen zu ändern.
Seien Sie sehr vorsichtig, bevor Sie dies ausführen! Wenn nicht richtig verwendet, können Sie Ihre Website löschen! Bevor Sie diesen Code testen, testen Sie ihn auf einem lokalen Host
quelle