it-swarm.com.de

drush cc all! = "Alle Caches spülen"

Wenn ich versuche, den Cache meiner drupal Site) mit dem Befehl drush cc all zu löschen, wird der Befehl erfolgreich ausgeführt, aber wenn ich meine drupal Site in einem Browser aufrufe, ist es a verstümmeltes Durcheinander, weil es kein CSS gibt.

Wenn ich mich als Administrator auf meiner Website anmelde und zu "Alle Caches leeren" gehe, funktioniert meine Website einwandfrei.

Dies wird hier kurz erläutert: http://dnotes.net/blog/dark-side-drop/david/why-all-my-css-gone-drush-cc

Obwohl ich keine Lösung sehe.

Ich denke, das zugrunde liegende Problem ist, dass drush cc all nicht WENIGER CSS-Dateien neu erstellt, sondern "Flush All Caches"? Gibt es eine Möglichkeit, die WENIGER-Dateien nach dem Löschen eines Caches neu zu erstellen?

Danke Brad

6
Brad

Wenn Sie den Cache über die Benutzeroberfläche und über Drush löschen, rufen beide drupal_flush_all_caches() auf, aber es gibt einen subtilen Unterschied.

Wenn Sie von der Benutzeroberfläche aus ausführen, wird PHP als Apache ausgeführt (oder wie auch immer Sie Ihren Webserver konfiguriert haben). Wenn Sie von drush ausgeführt werden, wird es als der Benutzer ausgeführt, der den Befehl ausgeführt hat.

Das Problem in Ihrem Fall ist, dass das WENIGER Modul seine Cron-Funktionen ausführt, wodurch die weniger Verzeichnisse in sites/default/files gelöscht und ein neues erstellt werden. In diesem Fall tritt häufig ein Berechtigungsproblem auf: Ihr drush-Benutzer besitzt das Verzeichnis weniger und Apache kann nicht darauf schreiben. Daher werden Ihre CSS-Dateien nicht neu generiert und Ihre Site wird nicht mehr formatiert.

Meine Lösung besteht darin, sicherzustellen, dass sich mein Drush-Benutzer auch in der Apache-Gruppe auf meinem Server befindet und dass mein Verzeichnis sites/default/files über die Berechtigung 2775 verfügt und Apache gehört: apache. Ich stelle auch sicher, dass die mask von httpd die Dinge gruppierbar macht.

Dadurch wird sichergestellt, dass alle Dateien und Verzeichnisse, die erstellt werden, immer Gruppenbesitz von Apache haben und dass Apache in alle Verzeichnisse schreiben kann, die erstellt werden, unabhängig davon, ob dies über httpd oder über die Befehlszeile erfolgt ist.

BEARBEITEN:

Es gibt noch einen bemerkenswerten Unterschied. Wenn Sie mit Drush löschen, löschen Sie einfach die Caches. Wenn Sie von der Benutzeroberfläche löschen, löschen Sie die Caches und laden die Seite neu. Wenn die Seite aus einem kalten Cache neu geladen wird, werden die Teile, die zum Neuerstellen dieser Seite verwendet wurden, erneut zwischengespeichert. Dies beinhaltet das Erstellen von CSS-Dateien aus den WENIGER Quellen.

16
mpdonadio

Sie können den 3.0-Zweig verwenden, derzeit 7.x-3.0-rc1.

Die Version 3.0 über Drush löscht nur Verzeichnisse beim Löschen des Caches und erstellt sie nicht neu, wodurch das Problem vermieden wird, dass Drush unter einem anderen Benutzer als dem Webserver ausgeführt wird.

Verzeichnisse werden bei Bedarf vom LESS-Modul erstellt, also nur, wenn ein Benutzer eine Seite über den Webserver anfordert. Daher werden die Verzeichnisse unter dem Webserverbenutzer erstellt.

Eine vollständige Version 7.x-3.0 wird in Kürze veröffentlicht (hoffentlich diese Woche).

1
corey.aufang