Confusion sur les actifs de rake: nettoyage / nettoyage sur le pipeline des actifs dans les rails

Quelqu’un pourrait-il m’expliquer ce que la commande rake assets:clean vraiment? Malheureusement, les guides Rails ne le mentionnent pas. Il y a aussi la commande rake assets:cleanup . Quelle est la différence?

En outre, quelqu’un pourrait-il me dire quand je dois gérer des rake assets:precomstack de la production. Est-ce que je l’exécute sur la console du serveur après avoir déployé tous mes fichiers d’application sur mon serveur de production? Ou est-ce que je precomstack sur ma machine locale et ensuite je déploie tous les fichiers?

Merci a tous

Note: Cette réponse est spécifique aux rails 3. Pour les rails 4 et suivants, regardez les autres réponses ici.

Si vous précomstackz sur votre ordinateur local, vous pouvez valider ces actifs générés dans le référentiel et procéder au déploiement. Pas besoin de les comstackr sur une machine de production.

Mais cela introduit un problème: maintenant, lorsque vous modifiez les fichiers source (coffescript / scss), l’application ne récupérera pas les modifications, car elle servira plutôt des fichiers précompilés. rake assets:clean supprime ces fichiers précompilés.

Dans mes projets, les actifs sont précompilés dans le cadre du déploiement. Capistrano le rend très facile.

En outre, je n’ai jamais entendu parler des rake assets:cleanup de rake assets:cleanup .

Exécuter des rake assets:clobber pour réellement nettoyer les actifs. http://www.dixis.com/?p=735

La réponse de Sergio était tout à fait correcte dans Rails 3. rake assets:clean tous les actifs précédemment précompilés dans le répertoire public/assets .

Dans Rails 4, vous utilisez des rake assets:clobber pour faire la même chose.

Si vous exécutez des rake assets:precomstack avec la configuration suivante (activée par défaut dans le stockage intermédiaire et la production):

 # config/environments/production.rb config.assets.digest = true 

Vos actifs compilés sont horodatés. Cela signifie que vous pouvez comstackr vos nouveaux actifs tout en laissant les anciens actifs en place. Vous voulez généralement le faire en production pour que votre site Web accède toujours aux anciens fichiers pendant que votre precomstack cours pour créer vos nouveaux fichiers (car vous avez ajouté de nouveaux css / javascript). Vous voulez maintenant vous débarrasser des anciens fichiers qui ne sont plus utilisés. Le clean supprime les anciennes versions des actifs précompilés tout en laissant les nouveaux actifs en place.

rake assets:clean supprime les actifs compilés. Il est exécuté par cap deploy:assets:clean à supprimer les actifs compilés, généralement d’un serveur distant.

cap deploy:clean supprime les anciennes versions, généralement d’un serveur distant. Ce ne sont pas des rake assets:clean

rake! = cap

rake assets:clean est maintenant exécuté par cap deploy:cleanup_assets . Ajoutez le require 'capistrano/rails/assets' à votre fichier de configuration et vous obtenez cette tâche. Ma version de capistrano est la v3.2.1.

nettoyer les fichiers non suivis avec git clean -f pour les fichiers et git clean -f -d pour les répertoires