10
votes

Rails 4: Comment compiler uniquement des actifs modifiés?

Pour Rails 3, cette question < / a> et turbo-pignons-rails3 superbes.

Pour Rails 4, il semble être une certaine controverse sur si cela a été corrigé ou non.

J'utilise actuellement Rails 4 dans la production, et il semble que parce Capistrano : Déployez actifs: update_asset_mtimes touche tous actifs, : Déployez actifs: precompile également re-compile tous. Ce recompilation est l'étape la plus longue seule dans mon cap deploy .

Idéalement, cela devrait être remplacé par un système de contrôle manifeste à base, de sorte que sont recompilées que les actifs qui ont réellement changé (ou dépendent de ceux qui ont changé).

Quelle est la meilleure façon de le faire? (En supposant que nous faisons encore sur le serveur, et non la machine dev.)


0 commentaires

3 Réponses :


2
votes

Voici un excellent article de blog des gars à la codeclimate à ce sujet. Je l'ai pris un coup d'oeil mais je n'ai pas suivi les étapes de la production.

http: // blog .Codeclimate.com / Blog / 2013/10/102 / Rails à haute vitesse-déployés-with-git /


1 commentaires

Cela ressemble à un joli changement radical (bien au-delà du montant dont je parlais). Certainement intéressant cependant.



1
votes

Ce problème a été discuté dans https://github.com/capistrano/capistrano/issues/478 Et la solution qui semble être correcte est simplement de désactiver le toucher. Dans le numéro ci-dessus, une variable de configuration a été parlée à utiliser pour cela, mais je ne pouvais trouver aucune référence de code. Au lieu de cela, nous écrivons maintenant simplement la tâche.

namespace :deploy do
  namespace :assets do
    task :update_asset_mtimes, :roles => lambda { assets_role }, :except => { :no_release => true } do
    end
  end
end


0 commentaires

2
votes

Ce gars a eu raison pour Capistrano 3. Fonctionne bien pour moi. https://coderwall.com/p/Ariidag


1 commentaires