Los cambios en CSS y JavaScript se aplican solo después de implementar contenido estático

8

Instalé Magento 2 desde el sitio de Magento. He activado el modo desarrollador por

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

Luego instalé mi tema personalizado y finalmente implementé mi contenido estático

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

Mi problema es que tengo que eliminar el pub/staticdirectorio e implementar contenido estático cada vez para aplicar los cambios de CSS y JavaScript. El proceso de implementación de contenido estático es lento y toma tanto tiempo que es muy frustrante. Desarrollo algo y tengo que implementarlo para que aparezca el cambio. Incluso para un cambio muy pequeño. Vaciar caché no está ayudando. Cualquier ayuda sería apreciada. Gracias por adelantado.

Janaka Dombawela
fuente

Respuestas:

4

Por ahora solo tiene esta forma de aplicar los cambios. Magento debe aplicar cambios a pub / static dir pero no lo hace. Esto todavía sabe error. Espero que se solucione pronto
. Puede aplicar nuevos cambios por comando como lo hace. Esta forma llevará un tiempo, pero debería funcionar a
mi manera cuando modifique js desde mi extensión. Solo voy al directorio pub y borro la carpeta

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

Puede hacer lo mismo con los archivos CSS cuando personaliza estilos

mrtuvn
fuente
¿Conoces algún boleto en github o es tu opinión personal? Como sé, no hay problema.
KAndy
4

Magento tiene una estrategia diferente para materializar activos estáticos: copiar y vincular. Cuando ejecute setup: static-content: despliegue este comando use Copiar estrategia y el archivo se materializará en una carpeta estática y no cambiará cuando cambie el original.

Si limpia la carpeta estática y abre la página en el navegador, se usará la estrategia de enlace y se creará un enlace en el archivo original. Entonces modificará la fuente y verá los cambios

Kandy
fuente
Así es, pero lleva más tiempo cargar la página después de borrar el contenido estático y no desplegarlo. También hay un problema de caché del navegador, aunque podemos usar pestañas de incógnito en ese caso, lo que nuevamente aumenta el tiempo de carga a medida que se crea contenido nuevo. Básicamente, es un proceso lento y no se puede negar.
Sanjay Chaudhary
0

Pero una vez que lo eliminé manualmente del directorio \ pub \ static \ frontend \ Magento \ luma \ en_US \ Vendor_Module \ js, no se genera automáticamente una vez que se carga la página. Para eso nuevamente, tengo que aplicar el comando despliegue de contenido estático, luego están ocurriendo nuevos cambios en los archivos js & css que hice para el módulo específico.

Sharad
fuente
0

Si tu corres

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

antes de la implementación de activos estáticos, Magento creará en el enlace simbólico pub / static (no copia) a los archivos del proveedor.

Por lo tanto, puede modificar los archivos en su tema y automáticamente los archivos generados en pub / static sin ejecutar bin / magento setup: static-content: despliegue cada vez.

Ahora puede usar un corredor de tareas para compilar sus archivos y generar el CSS.

nuovecode
fuente
0

El problema es que cuando elimina todo el contenido de pub / static, también elimina el archivo .htaccess y esto causa problemas con la generación de enlaces simbólicos a recursos estáticos en modo desarrollador.

Entonces,

  1. No elimine el archivo .htacess.
  2. Elimine solo el directorio de su tema específico, ej. eliminar contenido solo en pub / static / frontend / Your / theme

Según mi experiencia, al usar enlaces simbólicos a archivos estáticos en modo Desarrollador, no es necesario eliminarlos para ver los cambios. En caso de duda, solo corre

php bin/magento cache:flush
Iveta Allogenes
fuente