Le mode développeur de Magento 2 ne régénère pas automatiquement les fichiers statiques

14

J'ai une installation de Magento 2.0.2 en mode développeur et je n'arrive toujours pas à trouver comment la forcer à régénérer les fichiers de vue statique chaque fois que je modifie mon CSS.

J'ai vérifié que je suis en mode développeur en exécutant php bin/magento deploy:mode:show

Sur cette page, il est indiqué que le mode développeur désactive la mise en cache des fichiers de vue statique, mais ce n'est pas le cas pour moi.

J'ai essayé de modifier le di.xmlcomme mentionné dans cette solution, mais cela n'a pas changé le comportement de Magento.

Comment puis-je dire à magento de régénérer automatiquement les fichiers de vue statique?

AlexandreC
la source

Réponses:

4

En mode développeur, M2 ne génère pas de fichiers statiques. Il doit leur créer des liens symboliques à partir des différents modules. Si vous avez cependant exécuté setup: static-content: deploy et que ces fichiers sont en place, il ne les mettra pas à jour. Essayez de supprimer tous les fichiers statiques et voyez si Magento les relie (faites attention à ne pas supprimer les fichiers réels si vous avez des liens symboliques)

Petar Dzhambazov
la source
1
J'ai essayé de supprimer tout le contenu de pub / static (sans supprimer le fichier .htaccess) et cela n'a pas fonctionné. Il semble que les anciens fichiers aient été régénérés.
AlexandreC
Actuellement, la seule façon d'obtenir le contenu mis à jour est de cliquer sur «Vider le cache des fichiers statiques» sur la page de gestion du cache Magento.
AlexandreC
4
J'ai eu le même problème de liens symboliques non générés en mode développeur; puis j'ai réalisé que j'avais supprimé le .htaccesfichier pub/static; une fois que j'ai restauré le .htaccessfichier dans pub/staticla requête suivante, tous les liens symboliques ont été régénérés; J'espère que cela aide.
Alessandro Ronchi
J'ai le même problème actuellement avec Magento 2.0.6. .htaccessJ'ai essayé de rajouter le -file (je lance nginx, donc je ne pensais pas que cela ferait beaucoup), et comme prévu, cela n'a pas fonctionné. Auparavant, mes liens symboliques étaient créés, mais maintenant plus maintenant ...
Giel Berkers
1
Comme nous pensions qu'il pub/staticétait de toute façon généré automatiquement, nous l'avons également supprimé manuellement à un moment donné et avons rencontré le même problème. Il semble que dans notre configuration apache2 / php7, le fichier .htaccess maintenant manquant soit vraiment responsable de cela. Après avoir recréé le mode développeur .htaccess d'origine fonctionnait à nouveau correctement. Voici le lien vers les derniers .htacces: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork
1

La même chose m'est arrivée. Après avoir déplacé le site vers un autre serveur, il s'est avéré que je n'ai pas défini les autorisations de fichier correctement.

J'ai couru find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentoet cela a résolu mon problème.

Plus d'informations: Magento 2: autorisation de fichier recommandée pour l'hébergement partagé

Mise à jour: assurez-vous que le dossier pub (magento / pub) et les dossiers sous-jacents ont des autorisations de lecture et d'écriture.

Tristan
la source
2
Celui qui a voté: pourquoi?
Chris K
0

Un peu tard ici, mais je rencontrais le même problème. J'ai eu le developermode activé pendant un certain temps, puis pour une raison quelconque (probablement une erreur de ma part à un moment donné), il ne semblait plus fonctionner.

La solution la plus simple pour moi a été de réinitialiser à nouveau le mode développeur:

php bin/magento deploy:mode:show developer

NB: Vous devrez peut-être le régler sur defaultpuis developer.

David Wilkinson
la source
Cela n'a pas aidé non plus. D'autres suggestions?
Adarsh ​​Khatri
0

Je faisais face au même problème avec mes moins de mises à jour notant à moins que je ne vide mes fichiers statiques. La solution pour moi était de désactiver mod_expires. C'était la mise en cache du CSS et etc.

À l'intérieur du pub/static/.htaccessfichier, vous devriez avoir quelque chose comme ceci:

<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>

En désactivant mod_expiresou en commentant les éléments ci-dessus et en effectuant une actualisation matérielle dans votre navigateur (les utilisateurs Mac maintiennent la touche enfoncée Shift + Command + r), vos modifications devraient commencer à s'afficher chaque fois que vous les apportez.

MagentoMan
la source
0

Je viens d'avoir ce problème aussi!

Il s'avère que dans mon cas, c'était un problème de permission.

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

et

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

m'a donné des informations intéressantes (peut-être que votre fichier journal pourrait être nommé différemment)

j'ai d'abord vu:

[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

il s'est avéré que mon dossier pub / statique n'était pas exécutable. Puis après avoir réparé ce que j'ai

[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]

Sur notre serveur, apache ne peut pas servir de fichiers inscriptibles par groupe pour une raison quelconque, certaines choses de sécurité Cpanel je crois. J'ai donc dû mettre 644 sur tous les fichiers sous pub et enfin mes liens symboliques ont commencé à être créés !!

Pierre-Verthume Larivière
la source