Effacer le cache de thème / CSS dans Magento 2

28

Lorsque je thématise un magasin Magento 2, quelle est la méthode suggérée pour nettoyer les caches?

Je modifie les .lessfichiers et je fais actuellement

rm -rf pub/static/frontend/* var/view_preprocessed/ var/*cache/*

Mais cela semble être la méthode de la force brute.

php bin/magento cache:flush --all

semble ne pas faire le travail.

Y en a t-il un meilleur?

Alex
la source
comme votre question n'est toujours pas résolue, veuillez jeter un œil à ma réponse ici: magento.stackexchange.com/a/101139/27685 , je pense que cela pourrait aider.
MauroNigrele
J'ai également beaucoup de problèmes avec la mise en cache de CSS / Less, la suppression manuelle du module modifié dans pub / static aide parfois mais pas toujours. M2 s'avère difficile à travailler
Ben Crook

Réponses:

18

Je pense que la bonne façon de rafraîchir les fichiers .less maintenant c'est

php bin/magento setup:static-content:deploy

Parce qu'il "collecte, traite et publie les fichiers source MOINS"

Un autre point est d'utiliser le mode dev pendant le développement, puis selon la documentation "Les fichiers de vue statique ne sont pas mis en cache; ils sont écrits dans le répertoire pub / statique de Magento à chaque fois qu'ils sont appelés"

Pour mettre Magento 2 en mode développeur, vous devez suivre les étapes suivantes

  1. Supprimez le contenu des répertoires var / generation et var / di:

    rm -rf <your Magento install dir>/var/di/* <your Magento install dir>/var/generation/*

  2. Réglez le mode:

    php bin/magento setup:mode:set developer

FireBear
la source
1
il n'y a plus une telle deploy:mode:setcommande (beta2). Mais je suis passé MAGE_MODEpar SetEnv. Car dev:css:deployje dois saisir un nom de fichier. Que dois-je utiliser?
Alex
désolé, c'était ma mauvaise. setup: static-content: deploy est la commande correcte pour cela. également déployer: mode: set semble toujours fonctionner pour moi, vous ne l'avez pas également dans la liste de commandes de bin / magento?
FireBear
je l'ai eu, déployer: mode: set a également été changé en setup: mode: set selon goo.gl/Pive1U
FireBear
J'essaie toujours ce genre de choses ...
Alex
"Les fichiers de vue statique ne sont pas mis en cache; ils sont écrits dans le répertoire Magento pub / static chaque fois qu'ils sont appelés" Je pense que le document est erroné. Il y a un RewriteCond !-fdans .htaccessdans pub/staticlequel Apache utilise la version mise en cache si elle existe.
Alex
2

Il existe trois façons de vider le cache css, si les modifications ne se reflètent pas.

1. Utilisez Grunt à la place pour ne pas avoir à nettoyer le cache après chaque changement de CSS (méthode recommandée), vous pouvez voir plus de documentation sur grunt en consultant ce lien

2. Accédez à système> Gestion du cache> Gestion du cache supplémentaire> Vider le cache JavaScript / CSS.

entrez la description de l'image ici

3. Exécutez la commande deploy (cela prend une longue et pas une bonne recommandation, changez également le mode en développeur s'il n'est pas là.)

php bin/magento setup:static-content:deploy
Ruhani
la source
1

Je pense que le pub/staticcontenu (en mode dev) est généré avec la même logique que celle utilisée pour les var/generationfichiers, je veux dire, si le contenu requis n'existe pas, il est créé mais s'il existe déjà est réutilisé.

Je pense donc que vous devez pub/static[area]également nettoyer ou exécuter setup:static-content:deploypour tout remplacer, mais ce processus est très lent à exécuter chaque fois que vous effectuez un changement.

MauroNigrele
la source
0

En mode développeur, au lieu d'effacer manuellement le pub/staticet var/view_preprocessed.

Accédez à System > Tools > Cache Managementet cliquez sur Vider le cache des fichiers statiques .

Key Shang
la source
0

Pour vider le cache magento dans la commande comme vous pouvez exécuter:

bin/magento cache:flush

Pour vider le cache de stockage, vous pouvez exécuter:

bin/magento cache:clean

Pour vérifier l'état de l'exécution du cache (l'état doit être sur 1 pour actif et 0 pour désactivé):

bin/magento cache:status

Pour désactiver le cache magento tous ensemble, exécutez:

bin/magento cache:disable

Pour activer l'exécution du cache:

bin/magento cache:enable

Mais je pense que votre problème réside dans le mode Magento défini en mode production. Vous pouvez vérifier votre mode en utilisant: bin/magento deploy:mode:show Vous pouvez en savoir plus sur la production magento et le mode développeur ici

Comme alternative au mode développeur, bin/magento setup:static-content:deployvous pouvez l'utiliser bin/magento setup:upgradepour effacer le code compilé et le cache. Ou supprimez simplement manuellement tout ce qui se trouve dans le pub/staticdossier de votre projet que vous devez mettre à jour. Si quelque chose manque dans ce dossier, il sera recréé avec les dernières modifications.

Andrei
la source