Der Magento 2-Entwicklermodus generiert statische Dateien nicht automatisch neu

14

Ich habe eine Magento 2.0.2-Installation im Entwicklermodus und kann immer noch nicht herausfinden, wie ich sie zwingen soll, die statischen Ansichtsdateien neu zu generieren, wenn ich eine Änderung in meinem CSS vornehme.

Ich habe überprüft, ob ich im Entwicklermodus bin, indem ich ausgeführt habe php bin/magento deploy:mode:show

Auf dieser Seite heißt es, dass der Entwicklermodus das Zwischenspeichern von statischen Ansichtsdateien deaktiviert, aber das ist bei mir nicht der Fall.

Ich habe versucht, das di.xmlwie in dieser Lösung erwähnt zu bearbeiten, aber es hat Magentos Verhalten nicht verändert.

Wie kann ich magento anweisen, statische Ansichtsdateien automatisch neu zu generieren?

AlexandreC
quelle

Antworten:

4

Im Entwicklermodus generiert M2 keine statischen Dateien. Es sollte Symlinks zu ihnen aus den verschiedenen Modulen erstellen. Wenn Sie jedoch setup: static-content: deploy ausgeführt haben und diese Dateien installiert haben, werden sie nicht aktualisiert. Versuchen Sie, alle statischen Dateien zu entfernen und prüfen Sie, ob Magento Links zu ihnen enthält (achten Sie darauf, die tatsächlichen Dateien nicht zu entfernen, wenn Sie über Symlinks verfügen).

Petar Dzhambazov
quelle
1
Ich habe versucht, den gesamten Inhalt von pub / static zu löschen (ohne die .htaccess-Datei zu löschen) und es hat nicht funktioniert. Es sieht so aus, als ob die alten Dateien neu generiert wurden.
AlexandreC
Gegenwärtig kann ich den aktualisierten Inhalt nur erhalten, indem ich auf der Seite Magento Cache Management auf 'Flush Static Files Cache' klicke.
AlexandreC
4
Ich hatte das gleiche Problem, dass Symlinks nicht im Entwicklermodus generiert wurden. dann wurde mir klar, dass ich die .htaccesDatei von gelöscht hatte pub/static; Sobald ich die .htaccessDatei in pub/staticder nächsten Anfrage wiederhergestellt habe, wurden alle Symlinks neu erstellt. ich hoffe es hilft.
Alessandro Ronchi
Ich habe momentan das gleiche Problem mit Magento 2.0.6. Es wurde versucht, die .htaccess-Datei erneut hinzuzufügen (ich habe nginx ausgeführt, daher dachte ich nicht, dass dies viel bewirken würde), und wie erwartet hat es nicht funktioniert. Früher wurden meine Symlinks erstellt, aber jetzt nicht mehr ...
Giel Berkers
1
Da wir dachten, dass pub/statices sowieso automatisch generiert wird, haben wir es auch an einer Stelle manuell gelöscht und sind auf dasselbe Problem gestoßen. In unserem apache2 / php7-Setup scheint die nun fehlende .htaccess-Datei wirklich dafür verantwortlich zu sein. Nachdem der ursprüngliche .htaccess-Entwicklermodus wiederhergestellt wurde, funktionierte er wieder einwandfrei. Hier der Link zu den aktuellen .htacces: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork
1

Das gleiche ist mir passiert. Nachdem ich die Site auf einen anderen Server verschoben habe, stellte sich heraus, dass ich die Dateiberechtigungen nicht richtig eingestellt habe.

Ich rannte find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentound das löste mein Problem.

Weitere Informationen: Magento 2: Empfohlene Dateiberechtigung für Shared Hosting

Update: Stellen Sie sicher, dass der Pub-Ordner (magento / pub) und die zugrunde liegenden Ordner über Lese- und Schreibrechte verfügen.

Tristan
quelle
2
Wer hat was herabgestimmt? Warum?
Chris K
0

Etwas spät hier, aber ich hatte das gleiche Problem. ich hattedeveloper Modus für einige Zeit aktiviert, dann schien er aus irgendeinem Grund (wahrscheinlich irgendwann ein Fehler von meiner Seite) nicht mehr zu funktionieren.

Eine einfache Lösung für mich war, den Modus wieder auf Entwickler zurückzusetzen:

php bin/magento deploy:mode:show developer

NB: Möglicherweise müssen Sie es auf defaultund dann einstellen developer.

David Wilkinson
quelle
Das hat auch nicht geholfen. Irgendwelche anderen Vorschläge?
Adarsh ​​Khatri
0

Ich hatte das gleiche Problem mit weniger Updates, die nicht angezeigt wurden, es sei denn, ich habe meine statischen Dateien gelöscht. Das Update für mich war zu deaktivieren mod_expires. Dies war das Caching der CSS und etc.

In der pub/static/.htaccessDatei sollte etwa Folgendes enthalten sein:

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresActive On

    # Data
    <FilesMatch \.(zip|gz|gzip|bz2|csv|xml)$>
        ExpiresDefault "access plus 0 seconds"
    </FilesMatch>
    ExpiresByType text/xml "access plus 0 seconds"
    ExpiresByType text/csv "access plus 0 seconds"
    ExpiresByType application/json "access plus 0 seconds"
    ExpiresByType application/zip "access plus 0 seconds"
    ExpiresByType application/x-gzip "access plus 0 seconds"
    ExpiresByType application/x-bzip2 "access plus 0 seconds"

    # CSS, JavaScript, html
    <FilesMatch \.(css|js|html|json)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType text/html "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType application/json "access plus 1 year"

    # Favicon, images, flash
    <FilesMatch \.(ico|gif|png|jpg|jpeg|swf|svg)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"

    # Fonts
    <FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    ExpiresByType application/x-font-ttf "access plus 1 year"
    ExpiresByType application/x-font-otf "access plus 1 year"
    ExpiresByType application/x-font-woff "access plus 1 year"
    ExpiresByType application/font-woff2 "access plus 1 year"

</IfModule>

Durch Deaktivieren mod_expiresoder Auskommentieren des oben Gesagten und Durchführen einer harten Aktualisierung in Ihrem Browser (Mac-Benutzer halten die Taste gedrückt Shift + Command + r) sollten Ihre Änderungen jedes Mal angezeigt werden, wenn Sie sie vornehmen.

MagentoMan
quelle
0

Ich hatte gerade auch dieses Problem!

In meinem Fall stellte sich heraus, dass es sich um eine Berechtigungsfrage handelte.

cat /etc/apache2/logs/error_log | grep static

und

tail -f / etc / apache2 / logs / error_log | grep static

gab mir interessante infos (vielleicht könnte deine logdatei anders benannt sein)

zuerst sah ich:

[Wed Oct 30 12:19:34.287356 2019] [core:crit] [pid 27633] (13)Permission denied: [client 24.48.87.7:16680] AH00529: /home/[datuser]/public_html/pub/static/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/[datuser]/public_html/pub/static/' is executable

Es stellte sich heraus, dass mein pub / static-Ordner nicht ausführbar war. Dann, nachdem ich das repariert hatte, bekam ich

[Wed Oct 30 12:22:46.490759 2019] [:error] [pid 27290] [client ipremoved] SoftException in Application.cpp:267: File "/home/[datuser]/public_html/pub/static.php" is writeable by group, referer: [url removed]
[Wed Oct 30 12:22:46.490961 2019] [core:error] [pid 27290] [client ipremoved] End of script output before headers: static.php, referer: [url removed]

Auf unserem Server kann Apache keine Dateien bereitstellen, die aus irgendeinem Grund von einer Gruppe beschrieben werden können. Also musste ich 644 für alle Dateien unter pub setzen und endlich fingen meine Symlinks an, erstellt zu werden !!

Pierre-Verthume Larivière
quelle