El modo desarrollador Magento 2 no regenera archivos estáticos automáticamente

14

Tengo una instalación de Magento 2.0.2 en modo desarrollador y todavía no puedo entender cómo forzarla a regenerar los archivos de vista estática cada vez que realizo un cambio en mi CSS.

Verifiqué que estoy en modo desarrollador ejecutando php bin/magento deploy:mode:show

En esta página dice que el modo desarrollador deshabilita el almacenamiento en caché de los archivos de vista estática, pero ese no es el caso para mí.

Traté de editar el di.xmlmencionado en esta solución, pero no cambió el comportamiento de Magento.

¿Cómo puedo decirle a magento que regenere automáticamente los archivos de vista estática?

AlexandreC
fuente

Respuestas:

4

En modo desarrollador, M2 no genera archivos estáticos. Debería crear enlaces simbólicos a ellos desde los distintos módulos. Sin embargo, si ha ejecutado setup: static-content: despliegue y tenga esos archivos en su lugar, no los actualizará. Intente eliminar todos los archivos estáticos y vea si Magento los vincula (tenga cuidado de no eliminar los archivos reales si tiene enlaces simbólicos)

Petar Dzhambazov
fuente
1
Intenté eliminar todo el contenido de pub / static (sin eliminar el archivo .htaccess) y no funcionó. Parece que los viejos archivos fueron regenerados.
AlexandreC
Actualmente, la única forma en que puedo obtener el contenido actualizado es haciendo clic en 'Vaciar caché de archivos estáticos' en la página de Administración de caché de Magento.
AlexandreC
44
Tuve el mismo problema de que los enlaces simbólicos no se generaran en modo desarrollador; entonces me di cuenta de que había eliminado el .htaccesarchivo pub/static; una vez que restauré el .htaccessarchivo en pub/staticla siguiente solicitud, regeneré todos los enlaces simbólicos; Espero eso ayude.
Alessandro Ronchi
Actualmente tengo el mismo problema con Magento 2.0.6. Intenté volver a agregar el .htaccessarchivo (ejecuto nginx, así que no pensé que haría mucho), y como se esperaba, no funcionó. Anteriormente se crearon mis enlaces simbólicos, pero ahora ya no ...
Giel Berkers
1
Como pensamos que pub/staticse genera automáticamente de todos modos, también lo eliminamos manualmente en un punto y encontramos el mismo problema. Parece que en nuestra configuración de apache2 / php7 el archivo .htaccess que ahora falta es realmente responsable de esto. Después de recrear el modo de desarrollador original .htaccess estaba funcionando bien nuevamente. Aquí el enlace a los recientes .htacces: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork
1

Lo mismo me pasó a mí. Después de mover el sitio a otro servidor, resultó que no configuré los permisos de archivo correctamente.

Corrí find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentoy eso resolvió mi problema.

Más información: Magento 2: Permiso de archivo recomendado para alojamiento compartido

Actualización: asegúrese de que la carpeta pub (magento / pub) y las carpetas subyacentes tengan permisos de lectura y escritura.

Tristan
fuente
2
Quien ha votado: ¿por qué?
Chris K
0

Un poco tarde aquí, pero estaba experimentando el mismo problema. Tenía el developermodo habilitado por algún tiempo, luego por alguna razón (probablemente un error de mi parte en algún momento), ya no parecía funcionar.

La solución simple para mí fue restablecer el modo al desarrollador nuevamente:

php bin/magento deploy:mode:show developer

Nota: es posible que deba configurarlo defaulty luego developer.

David Wilkinson
fuente
Esto tampoco ayudó. ¿Cualquier otra sugerencia?
Adarsh ​​Khatri
0

Estaba enfrentando el mismo problema con mis menos actualizaciones que se mostraban a menos que borrara mis archivos estáticos. La solución para mí fue deshabilitar mod_expires. Esto fue almacenar en caché el CSS y etc.

Dentro del pub/static/.htaccessarchivo deberías tener algo como lo siguiente:

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

Al deshabilitar mod_expireso comentar lo anterior y realizar una actualización completa en su navegador (los usuarios de Mac mantienen presionada Shift + Command + r), sus cambios deberían comenzar a mostrarse cada vez que los realice.

MagentoMan
fuente
0

¡Acabo de tener este problema también!

Resulta que en mi caso fue un problema de permiso.

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

y

tail -f / etc / apache2 / logs / error_log | grep estática

me dio información interesante (tal vez su archivo de registro podría tener un nombre diferente)

primero vi:

[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

Resultó que mi carpeta pub / static no era ejecutable. Luego, después de arreglar eso, obtuve

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

En nuestro servidor, Apache no puede servir archivos que se pueden escribir por grupo por alguna razón, creo que algunas cosas de seguridad de Cpanel. ¡¡Entonces tuve que configurar 644 en todos los archivos en pub y finalmente mis enlaces simbólicos comenzaron a crearse !!

Pierre-Verthume Larivière
fuente