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?
De plus, quelqu'un pourrait-il me dire quand dois-je exécuter rake assets:precompile
en production. Dois-je l'exécuter sur la console du serveur après avoir déployé tous mes fichiers d'application sur mon serveur de production? Ou dois-je precompile
sur ma machine locale puis faire un déploiement de tous les fichiers?
Merci a tous
Si vous précompilez sur votre ordinateur local, vous pouvez valider ces actifs générés dans le référentiel et poursuivre le déploiement. Pas besoin de les compiler sur machine de production.
Mais cela introduit un problème: maintenant, lorsque vous modifiez des fichiers source (coffescript/scss), l'application ne reprendra pas les modifications, car elle servira à la place 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.
De plus, je n'ai jamais entendu parler de rake assets:cleanup
.
Courir rake assets:clobber
pour nettoyer les actifs. http://www.dixis.com/?p=735
La réponse de Sergio était complètement correcte dans Rails 3. rake assets:clean
a supprimé tous les éléments qui avaient été préalablement précompilés dans le public/assets
répertoire.
Dans Rails 4, vous exécutez rake assets:clobber
pour faire la même chose.
Si vous exécutez rake assets:precompile
avec la configuration suivante (activée par défaut dans le transfert et la production):
# config/environments/production.rb
config.assets.digest = true
Vos ressources compilées sont horodatées. Cela signifie que vous pouvez compiler vos nouveaux actifs tout en laissant les anciens actifs en place. Vous voulez généralement le faire en production afin que votre site Web accède toujours aux anciens fichiers pendant que vous exécutez precompile
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
il 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 géré par cap deploy:assets:clean
pour 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 n'est pas rake assets:clean
râteau! = casquette
rake assets:clean
est maintenant géré par cap deploy:cleanup_assets
. Ajouter require 'capistrano/Rails/assets'
à votre Capfile et vous obtenez cette tâche de cap. Ma version capistrano est la v3.2.1.