Löschen Sie den Theme / CSS Cache in Magento 2

28

Was ist der empfohlene Weg, um die Caches zu bereinigen, wenn ich ein Magento 2-Geschäft zum Thema habe?

Ich bearbeite die .lessDateien und das tue ich aktuell

rm -rf pub/static/frontend/* var/view_preprocessed/ var/*cache/*

Dies scheint jedoch die Brute-Force-Methode zu sein.

php bin/magento cache:flush --all

scheint den Job nicht zu machen.

Gibt es eine bessere?

Alex
quelle
da deine frage immer noch ungelöst ist, schau bitte mal meine antwort hier an: magento.stackexchange.com/a/101139/27685 , ich denke könnte helfen.
MauroNigrele
Ich habe auch eine Menge Probleme damit, dass CSS / Less zwischengespeichert wird. Das manuelle Löschen des geänderten Moduls in pub / static hilft manchmal, aber nicht immer. M2 erweist sich als schwierig zu arbeiten
Ben Crook

Antworten:

18

Ich denke, der richtige Weg, um .less Dateien zu aktualisieren, ist es jetzt

php bin/magento setup:static-content:deploy

Weil es "WENIGER Quelldateien sammelt, verarbeitet und veröffentlicht"

Ein weiterer Punkt ist es die Nutzung dev - Modus während der Entwicklung dann nach Dokumentation „Static View - Dateien wird nicht zwischengespeichert, sie geschrieben werden das Magento pub / statische Verzeichnis jedes Mal , wenn sie genannt werden“

Um Magento 2 in den Entwicklermodus zu versetzen, müssen Sie die folgenden Schritte ausführen

  1. Löschen Sie den Inhalt der Verzeichnisse var / generation und var / di:

    rm -rf <your Magento install dir>/var/di/* <your Magento install dir>/var/generation/*

  2. Stellen Sie den Modus ein:

    php bin/magento setup:mode:set developer

Feuerbär
quelle
1
es gibt keinen solchen deploy:mode:setbefehl mehr (beta2). Aber ich setze MAGE_MODEüber SetEnv. Denn dev:css:deployich muss einen Dateinamen eingeben. Welches soll ich verwenden?
Alex
Entschuldigung, das war mein schlechtes. setup: static-content: deploy ist der richtige Befehl dafür. auch deploy: mode: set scheint bei mir noch zu funktionieren, hast du es nicht auch in der befehlsliste von bin / magento?
FireBear
habe es, deploy: mode: set wurde auch geändert zu setup: mode: set gemäß goo.gl/Pive1U
FireBear
Ich versuche immer noch dieses Zeug ...
Alex
"Statische Ansichtsdateien werden nicht zwischengespeichert; sie werden jedes Mal, wenn sie aufgerufen werden, in das Magento pub / static-Verzeichnis geschrieben." Ich denke, das Dokument ist falsch. Es gibt ein RewriteCond !-fin, .htaccessin pub/staticdem Apache die zwischengespeicherte Version verwendet, falls vorhanden.
Alex
2

Es gibt drei Möglichkeiten, den CSS-Cache zu löschen, wenn die Änderungen nicht übernommen werden.

1. Verwenden Sie stattdessen Grunt, damit Sie den Cache nicht nach jeder Änderung des CSS bereinigen müssen (empfohlener Weg). Weitere Dokumentation zu Grunt finden Sie unter diesem Link

2. Gehen Sie zu System> Cache-Verwaltung> Zusätzliche Cache-Verwaltung> JavaScript / CSS-Cache leeren.

Bildbeschreibung hier eingeben

3. Führen Sie den Befehl deploy aus (dies dauert lange und ist keine gute Empfehlung. Ändern Sie den Modus auch in developer, wenn er nicht vorhanden ist.)

php bin/magento setup:static-content:deploy
Ruhani
quelle
1

Ich denke, dass pub/staticInhalte (im Dev-Modus) mit der gleichen Logik generiert werden, die für var/generationDateien verwendet wird. Ich meine, wenn der erforderliche Inhalt nicht vorhanden ist, wird er erstellt, aber wenn er bereits vorhanden ist, wird er wiederverwendet.

Daher denke ich, dass Sie auch bereinigen pub/static[area]oder ausführen sollten setup:static-content:deploy, um alle zu überschreiben, aber dieser Prozess ist bei jeder Änderung sehr langsam.

MauroNigrele
quelle
0

Deaktivieren Sie im Entwicklermodus das pub/staticund nicht manuell var/view_preprocessed.

Gehen Sie zu System > Tools > Cache Managementund klicken Sie auf Flush Static Files Cache .

Key Shang
quelle
0

So leeren Sie den Magento-Cache in einem Befehl, wie Sie ihn ausführen können:

bin/magento cache:flush

So leeren Sie den Speichercache:

bin/magento cache:clean

So überprüfen Sie den Status des Cache-Laufs (Status sollte 1 für Aktiv und 0 für Deaktiviert sein):

bin/magento cache:status

So deaktivieren Sie den Magento-Cache:

bin/magento cache:disable

So aktivieren Sie den Cache-Lauf:

bin/magento cache:enable

Aber ich denke, Ihr Problem liegt darin, dass der Magento-Modus auf den Produktionsmodus eingestellt ist. Sie können Ihren Modus überprüfen, indem bin/magento deploy:mode:show Sie Folgendes verwenden: Weitere Informationen zur Magento-Produktion und zum Entwicklermodus finden Sie hier

Alternativ können bin/magento setup:static-content:deploySie den Entwicklermodus verwenden bin/magento setup:upgrade, um kompilierten Code und den Cache zu löschen. Oder löschen Sie einfach manuell alles aus dem pub/staticOrdner Ihres Projekts, das Sie aktualisieren möchten. Wenn in diesem Ordner etwas fehlt, wird es mit den letzten Änderungen neu generiert.

Andrei
quelle