Les modifications apportées à CSS et JavaScript s'appliquent uniquement après le déploiement de contenu statique

8

J'ai installé Magento 2 à partir du site Magento. J'ai activé le mode développeur par

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

Ensuite, j'ai installé mon thème personnalisé et enfin j'ai déployé mon contenu statique par

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

Mon problème est que je dois supprimer le pub/staticrépertoire et déployer du contenu statique à chaque fois pour appliquer les modifications css et javacript. Le processus de déploiement de contenu statique est lent et prend tellement de temps qu'il est très frustrant. Je développe quelque chose et je dois déployer pour faire apparaître le changement. Même pour de très petits changements. Vider le cache n'aide pas. Toute aide serait appréciée. Merci d'avance.

Janaka Dombawela
la source

Réponses:

4

Pour l'instant, vous n'avez que cette façon d'appliquer les modifications. Magento devrait appliquer les modifications au répertoire pub / statique, mais ce n'est pas le cas. Ce bug encore connu. J'espère que cela devrait être corrigé bientôt
Vous pouvez appliquer de nouvelles modifications par commande comme vous le faites. Cette méthode prendra du temps mais devrait fonctionner à
ma façon lorsque je modifie js depuis mon extension. Je vais juste dans le répertoire pub et efface le dossier

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

Vous pouvez faire de même avec les fichiers CSS lors de la personnalisation des styles

mrtuvn
la source
Connaissez-vous un ticket sur github ou c'est votre opinion personnelle? Comme je sais, il n'y a pas de problème.
KAndy
4

Magento a une stratégie différente pour matérialiser les actifs statiques: Copier et Lier. Lorsque vous exécutez setup: static-content: déployez cette commande, utilisez la stratégie de copie et le fichier sera matérialisé dans le dossier statique et ne changera pas lorsque vous modifiez l'original.

Si vous nettoyez le dossier statique et ouvrez la page dans le navigateur, la stratégie de lien sera utilisée et le lien sur le fichier d'origine sera créé. Vous allez donc modifier la source et voir les changements

KAndy
la source
C'est vrai, mais il faut plus de temps pour charger la page après avoir effacé le contenu statique et ne pas l'avoir déployé. Il y a aussi un problème de cache du navigateur, bien que nous puissions utiliser des onglets de navigation privée dans ce cas, ce qui augmente encore le temps de chargement à mesure que du nouveau contenu est créé. Fondamentalement, son processus prend du temps et vous ne pouvez pas le nier.
Sanjay Chaudhary
0

Mais une fois que j'ai supprimé manuellement le répertoire \ pub \ static \ frontend \ Magento \ luma \ en_US \ Vendor_Module \ js, il n'est pas généré automatiquement une fois le chargement de la page effectué. Pour cela encore, je dois appliquer la commande static-content deploy, puis il y a de nouveaux changements dans les fichiers js & css ce que j'ai fait pour le module spécifique.

Sharad
la source
0

Si vous courez

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

avant le déploiement des actifs statiques, Magento créera dans le répertoire pub / static un lien symbolique (et non une copie) vers les fichiers du fournisseur.

Ainsi, vous pouvez modifier les fichiers de votre thème et automatiquement les fichiers générés dans pub / static sans exécuter bin / magento setup: static-content: deploy every time.

Vous pouvez maintenant utiliser un exécuteur de tâches pour compiler vos fichiers et générer le CSS.

nuovecode
la source
0

Le problème est que lorsque vous supprimez tout le contenu de pub / static, vous supprimez également le fichier .htaccess et cela provoque vos problèmes de génération de liens symboliques vers des ressources statiques en mode développeur.

Donc,

  1. Ne supprimez pas le fichier .htacess.
  2. Supprimez uniquement le répertoire de votre thème spécifique, par ex. supprimer le contenu uniquement dans pub / static / frontend / Your / theme

D'après mon expérience, lorsque vous utilisez des liens symboliques vers des fichiers statiques en mode développeur, vous n'avez pas besoin de les supprimer pour voir vos modifications. En cas de doute, lancez-vous

php bin/magento cache:flush
Iveta Allogenes
la source