Ich habe Magento 2 installiert und den Entwicklermodus eingestellt, dann habe ich ein Modul installiert, das CSS- und JS-Dateien enthält. Das Modul funktioniert einwandfrei und CSS- und JS-Dateien werden aus dem Ordner pub / static gerendert. Jetzt habe ich CSS-Änderungen in der CSS-Datei des Modulverzeichnisses vorgenommen und den Befehl ausgeführt
php bin/magento setup:static-content:deploy
Aber Magento nimmt keine neuen Änderungen an pub / static-CSS-Dateien vor, so dass ich alte CSS-Dateiinhalte erhalte. Weiß jemand, wie man die gesamte CSS-Datei im Pub / Static-Ordner regeneriert?
magento2
css
deploy
static-content-deploy
Chirag Dodia
quelle
quelle
.htaccess
Datei impub/static
Ordner befinden, damit es weiß, wie Symlinks zu Dateien erstellt werden, wenn Sie den.htaccess
jetzt fehlenden pub / static-OrdnerAntworten:
Erstellen Sie vor dem Löschen von pub / static ein Backup von pub / static / .htaccess und stellen Sie es wieder her. Andernfalls werden alle CSS und JS 404-Fehler anzeigen!
pub/static
[Halten Sie die .htaccess-Datei gesichert und kopieren Sie sie erneut.]var/cache
var/composer_home
var/generation
var/page_cache
var/view_preprocessed
php bin/magento setup:static-content:deploy
quelle
Antworten hier erwähnen nicht, dass Sie den .htaccess im pub / static-Ordner nicht löschen sollten .
Um alle Dateien mit Ausnahme der .htacces zu löschen, geben Sie das Verzeichnis pub / static ein und führen Sie es aus
dann kannst du rennen
quelle
Ich habe gerade die CSS-Dateien aus dem
pub/static
Ordner gelöscht und den Befehl ausgeführt:Es wird dieselbe Datei mit den letzten Änderungen neu generiert.
quelle
Da ist die Frage nach
js and css
Update in Magento 2 im Entwicklermodus .pub/static/frontend/namespace/theme/ ... module/js/...
Löschen Sie sie, damit nach der Seitenaktualisierung eine neue JS-Datei im Pub-Ordner erstellt wird.Setup Theme in Magento
...\dev\tools\grunt\configs\themes.js
Klonen Sie ein Theme-Beispiel- Luma-Theme zu Ihrem Theme und weisen Sie einen Namen zu, vorausgesetzt, xyz
Ändern Sie im Stammverzeichnis den Dateinamen: Gruntfile.js.sample in Gruntfile.js
Ändern Sie im Stammverzeichnis den Dateinamen: package.json.sample in package.json
Muss grunzen in Ihrem Site-Ordner haben, sonst über npm installieren
Öffnen Sie die Eingabeaufforderung mit Administratorberechtigung
Gehen Sie zum
grunt exec:theme
ersten Mal nach dem Bereitstellen des Themas zum Site-Ordner in CMD & hit commandDann
grunt less:theme
jedes Mal, wenn wir Änderungen in weniger machenWenn Sie häufig Änderungen bei geringerem Gebrauch vornehmen
grunt watch
, wird dies automatisch ausgelöstgrunt less:theme
quelle
Einfacher Weg 1
Im Magento Admin. Gehen Sie zu
System > Tools > Cache Management
und klicken Sie auf Flush Static Files Cache .Einfacher Weg 2
Wenn Sie gerade die bereits vorhandene CSS-Datei geändert haben , müssen Sie nur die entsprechende Datei in löschen.
pub/static
Wenn Sie die Seite aktualisieren, wird die neue Version der CSS-Datei generiert. Es funktioniert im Entwicklermodus .Beachten
Wenn Sie eine neue Datei erstellen, anstatt eine vorhandene Datei zu ändern, müssen Sie möglicherweise auch den Cache leeren
php bin/magento cache:flush
.Standardmodus und Entwicklermodus müssen keine statischen Ansichtsdateien bereitstellen , da statische Dateien dynamisch generiert und nicht materialisiert werden. (Referenz: Über Magento-Modi )
Im Produktionsmodus benötigen Sie möglicherweise auch
php bin/magento setup:static-content:deploy
undphp bin/magento cache:flush
, ich versuche es noch nicht im Produktionsmodus .quelle
Ok, basierend auf dem, was ich in verschiedenen anderen Posts gelesen habe und meiner persönlichen Erfahrung hier, ist der Prozess, um das CSS oder einen statischen Inhalt neu zu generieren:
Dadurch werden alle erforderlichen Cache- / Generierungs- / usw.-Dateien gelöscht, ohne dass tatsächlich benötigte Daten gelöscht werden.
Dadurch werden die Dateien neu kompiliert. Zuletzt:
Nach dem letzten Befehl sollte alles neu und frisch sein, aktualisieren Sie einfach Ihre Seite.
----- Anmerkungen ------
1) Vergewissern Sie sich, dass Ihre Dateiberechtigungen und der Eigentümer: Benutzergruppe richtig eingestellt sind, bevor Sie dies tun. Möglicherweise müssen Sie mit Ihrem Systemadministrator darüber sprechen.
2) Wenn der Befehl setup: upgrade fehlschlägt, werden möglicherweise die Dateien gelöscht und die neuen können nicht geschrieben werden, wie dies bei mir aufgrund von Dateiberechtigungen der Fall war. Hierdurch kann Ihre Site beschädigt werden. Sie müssen lediglich die Berechtigungen ausbügeln und den Befehl erneut ausführen.
3) Ich habe (bisher) keine Möglichkeit gefunden, nur ein bestimmtes Thema oder eine bestimmte Datei neu zu kompilieren (wäre super hilfreich, wenn jemand einen Weg findet), ohne ein vollständig benutzerdefiniertes Skript zu schreiben
Wenn jemand etwas besseres weiß, lassen Sie es mich wissen, denn 12 Minuten Kompilieren von Dateien, weil ich einige CSS-Änderungen vornehmen musste, ist in meinen Augen ein äußerst schlechtes Design.
--- Bearbeiten ---
In Magento 2 ist Grunt eingebunden, was das Aktualisieren von CSS / WENIGER-Dateien unendlich erleichtert, wenn Sie sich die Zeit nehmen, diese zu konfigurieren. Die meisten Dateien sind als .sample-Dateien vorhanden. Entfernen Sie einfach die .sample-Dateierweiterung und konfigurieren Sie die Datei themes.js im Ordner / dev / tools / grunt / configs. Wenn Sie dann Ihre WENIGER-Dateien aktualisieren müssen, führen Sie einfach weniger Grunzen aus: - Theme- - über die Befehlszeile.
Ressource: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/css-topics/css_debug.html
quelle
Vergessen Sie nicht, die Befehle "
grunt exec:theme
,"grunt less:theme
auszuführen. Dabeitheme
handelt es sich um das Thema, das Sie in derthemes.js
Datei im Konfigurationsordner von grunt deklariert haben (alles im Entwicklerhandbuch). Wenn Sie Magento im Entwicklermodus haben, sollten Sie den Befehl "static deploy" nicht ausführen.Magento2
arbeitet mitSymlinks
quelle
Führen Sie diese Befehle in Ihrem Magento- Stammordner aus:
quelle
Zu dieser Frage ist eine wichtige Anmerkung zu machen, auf die in den meisten Antworten nicht ausdrücklich hingewiesen wird. In Ihrem Fall (mit dem Setup, das Sie verwenden) wird der Grund, warum Ihre CSS-Änderungen nicht übernommen werden, wenn Sie das CSS in den
pub/static
Ordner neu generieren, darin bestehen, dass Sie den Inhalt desvar/view_preprocessed
Direktors nicht entfernen . In diesem Verzeichnis befinden sich zwischengespeicherte Versionen Ihres CSS, diepub/static
beim Ausführen desphp bin/magento setup:static-content:deploy
Befehls in den Ordner gezogen werden .Wenn Sie also neu kompilieren, sucht Magento zuerst im
var/view_preprocessed
Ordner nach dem zwischengespeicherten CSS. Wenn dieser Ordner leer ist, wird nach den Themendateien gesucht und das CSS zum Kompilieren abgerufen.Diese Einstellungen sind konfigurierbar. Sie haben also viele Möglichkeiten, an Ihr Ziel zu gelangen, um den Weg zu ändern, den Sie einschlagen müssen. Aber für die Lösung Ihres spezifischen Setups:
Entfernen Sie die Dateien aus dem
pub/static
Ordner:rm -rf pub/static/*
Entfernen Sie die Dateien aus dem
var/view_preprocessed
Ordner:rm -rf var/view_preprocessed/*
Kompilieren Sie den statischen Pub-Ordner neu:
php bin/magento setup:static-content:deploy
Cache leeren ist aktiviert:
php bin/magento cache:clean
Aktualisieren Sie den Browser.
quelle
app/etc/di.xml
Datei di.xml ( ) festlegen können . Aber ich hatte gemischte Ergebnisse beim Testen. Hier in der zweiten Antwort ist ein bisschen mehr: magento.stackexchange.com/questions/116605/…Entfernen Sie den Ordner, der Ihr Thema enthält
, aus dem Cache pub / static / frontend clear.
Sie können grunt verwenden, um das Anwenden von Stylesheets zu beobachten. Lesen Sie hier
quelle
pub/static
777 Erlaubnisphp bin/magento setup:static-content:deploy
Du wirst neue CSS sehen.
HINWEIS:
Erteilen Sie die entsprechenden Ordner- und Dateiberechtigungen.
Ich hoffe, dies wird dir helfen.
quelle
Könnten Sie nicht einfach den statischen Cache im Admin-Bereich leeren und dann
quelle
Stellen Sie sicher, dass Sie den Entwicklermodus verwenden.
Führen Sie dann folgenden Code aus:
Aktualisieren Sie die Frontend-Seite. Diese Schritte haben mein Problem gelöst.
quelle
Sie können jedoch das Flag
-f
oder--force
zum Setup-Befehl hinzufügen .Beispiel:
quelle
Ich werde mein Weisheitströpfchen hier fallen lassen.
Ich verwende ein
cache_fly.sh
Bash-Skript, das im Grunde Folgendes bewirkt:HINWEIS: Ich habe ein Echo hinzugefügt, um zu zeigen, wie viel Zeit meines Lebens ich damit verbracht habe, darauf zu warten, dass es ausgeführt wird. Ist auch
./magento
ein Skript zum Ausführenphp bin/magento
oder Aufrufen des gleichen Vorgangs im Docker-Container. Wenn Docker verwendet wird, können Sie es erstellen oder darauf verweisen.php bin/magento
Wenn Sie dies jedoch lesen, sollten Sie wissen, wovon ich spreche. Wenn nicht, fragen Sie bitte für Hilfe.quelle
Kleine Anpassung für meinen Fall
quelle