Änderungen an CSS und JavaScript gelten erst nach der Bereitstellung statischer Inhalte

8

Ich habe Magento 2 von der Magento-Site installiert. Ich habe den Entwicklermodus von aktiviert

{project directory}>php bin/magento setup:mode:set developer

Dann habe ich mein benutzerdefiniertes Thema installiert und schließlich meinen statischen Inhalt von bereitgestellt

{project directory}>php bin/magento setup:static-content:deploy

Mein Problem ist, dass ich pub/staticjedes Mal das Verzeichnis löschen und statischen Inhalt bereitstellen muss, um die CSS- und Javacript-Änderungen zu übernehmen. Der Bereitstellungsprozess für statische Inhalte ist langsam und nimmt so viel Zeit in Anspruch, dass er sehr frustrierend ist. Ich entwickle etwas und muss es bereitstellen, damit die Änderung angezeigt wird. Auch für sehr kleine Änderungen. Das Leeren des Caches hilft nicht. Jede Hilfe wäre dankbar. Danke im Voraus.

Janaka Dombawela
quelle

Antworten:

4

Im Moment haben Sie nur diese Möglichkeit, Änderungen zu übernehmen. Magento sollte Änderungen an pub / static dir anwenden, aber nicht. Dies ist immer noch ein Fehler. Hoffe, es sollte bald behoben sein.
Sie können neue Änderungen auf Befehl wie Sie anwenden. Dieser Weg wird einige Zeit dauern, sollte aber auf
meine Weise funktionieren , wenn ich js von meiner Erweiterung aus ändere. Ich gehe einfach zum Pub-Verzeichnis und lösche den Ordner

\pub\static\frontend\Magento\luma\en_US\<Vendor_Module>\js

Sie können dies auch mit CSS-Dateien tun, wenn Sie Stile anpassen

mrtuvn
quelle
Kennen Sie ein Ticket auf Github oder ist es Ihre persönliche Meinung? Wie ich weiß gibt es kein Problem.
KAndy
4

Magento verfolgt eine andere Strategie, um statische Assets zu materialisieren. Kopieren und Verknüpfen. Wenn Sie setup: static-content ausführen: Setzen Sie diesen Befehl ein. Verwenden Sie die Kopierstrategie, und die Datei wird im statischen Ordner angezeigt und ändert sich nicht, wenn Sie das Original ändern.

Wenn Sie den statischen Ordner bereinigen und die Seite im Browser öffnen, wird die Link-Strategie verwendet und der Link zur Originaldatei erstellt. Sie ändern also die Quelle und sehen Änderungen

KAndy
quelle
Das ist richtig, aber das Laden der Seite dauert länger, nachdem statische Inhalte gelöscht und nicht bereitgestellt wurden. Es gibt auch ein Problem mit dem Browser-Cache, obwohl wir in diesem Fall Inkognito-Registerkarten verwenden können, was wiederum die Ladezeit erhöht, wenn neuer Inhalt erstellt wird. Grundsätzlich ist es zeitaufwändig und das kann man nicht leugnen.
Sanjay Chaudhary
0

Sobald ich das Verzeichnis manuell aus dem Verzeichnis \ pub \ static \ frontend \ Magento \ luma \ de_DE \ Vendor_Module \ js entfernt habe, wird es nach dem Laden der Seite nicht automatisch generiert. Dafür muss ich wieder den Befehl static-content deploy anwenden, dann treten neue Änderungen in den js & css-Dateien auf, die ich für modulspezifisch vorgenommen habe.

Scharade
quelle
0

Wenn du läufst

bin/magento dev:source-theme:deploy --theme [Vendor]/[theme] --locale <locale>

Vor der Bereitstellung der statischen Assets erstellt Magento im Pub / Static-Verzeichnis einen Symlink (nicht kopieren) zu den Dateien des Herstellers.

So können Sie die Dateien in Ihrem Design und automatisch die in pub / static generierten Dateien ändern, ohne bin / magento setup ausführen: static-content: jedes Mal bereitstellen .

Jetzt können Sie einen Task-Runner verwenden, um Ihre Dateien zu kompilieren und das CSS zu generieren.

Nuovecode
quelle
0

Das Problem ist, dass Sie beim Löschen des gesamten Inhalts von pub / static auch die .htaccess-Datei löschen. Dies führt zu Problemen beim Generieren von Symlinks zu statischen Ressourcen im Entwicklermodus.

Damit,

  1. Löschen Sie keine .htacess-Datei.
  2. Löschen Sie nur das Verzeichnis Ihres spezifischen Themas, z. Löschen Sie Inhalte nur in pub / static / frontend / Your / theme

Wenn Sie im Entwicklermodus Symlinks zu statischen Dateien verwenden, müssen Sie diese meiner Erfahrung nach nicht löschen, um Ihre Änderungen zu sehen. Im Zweifelsfall einfach rennen

php bin/magento cache:flush
Iveta Allogenes
quelle