2 votes

Le déploiement ne trouve pas les dossiers d'actifs dans le répertoire public.

J'utilise ror 3.1 rc4, d'une manière ou d'une autre lorsque je déploie dans un serveur de production, les répertoires pour les images, les feuilles de style et le javascript ne sont pas trouvés, et le déploiement échoue. J'ai le code nécessaire dans deploy.rb

namespace :deploy do
  task :start do ; end
  task :stop do ; end

   desc "Restarting mod_rails with restart.txt"
   task :restart, :roles => :app, :except => { :no_release => true } do
   run "touch #{current_path}/tmp/restart.txt"
end

task :precompile do
   run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"
end
end

after 'deploy:update_code', 'deploy:precompile'

Et voici l'erreur que je reçois

 executing "find /var/www/nattyvelo/releases/20110624033801/public/images /var/www/nattyvelo/releases/20110624033801/public/stylesheets /var/www/nattyvelo/releases/20110624033801/public/javascripts -exec touch -t 201106240338.03 {} ';'; true"
    servers: ["66.228.39.243"]
    [66.228.39.243] executing command
 ** [out :: 66.228.39.243] find: `/var/www/nattyvelo/releases/20110624033801/public/images'
 ** [out :: 66.228.39.243] : No such file or directory
 ** [out :: 66.228.39.243] find: `/var/www/nattyvelo/releases/20110624033801/public/stylesheets'
 ** [out :: 66.228.39.243] : No such file or directory
 ** [out :: 66.228.39.243] find: `/var/www/nattyvelo/releases/20110624033801/public/javascripts'
 ** [out :: 66.228.39.243] : No such file or directory
    command finished in 705ms
    triggering after callbacks for `deploy:update_code'
  * executing `bundle:install'
  * executing "ls -x /var/www/nattyvelo/releases"
    servers: ["66.228.39.243"]
    [66.228.39.243] executing command
    command finished in 595ms
  * executing "cd /var/www/nattyvelo/releases/20110624033801 && bundle install --gemfile /var/www/nattyvelo/releases/20110624033801/Gemfile --path /var/www/nattyvelo/shared/bundle --deployment --quiet --without development test"
    servers: ["66.228.39.243"]
    [66.228.39.243] executing command
 ** [out :: 66.228.39.243] bash: bundle: command not found
    command finished in 604ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/nattyvelo/releases/20110624033801; true"

1voto

Ryan Bigg Points 64561

Il y a deux erreurs qui se produisent ici.

La première est qu'il n'y a plus de public/images , public/stylesheets o public/javascripts dans une application Rails 3.1. Ils ont tous été déplacés dans app/assets . Cependant, si vous exécutez rake assets:precompile alors il y a sera être un public/assets dossier. C'est à partir de ce dossier que les ressources statiques de votre application seront servies.

Ce qui dans votre déploiement script fait référence à ces trois dossiers doit cesser de le faire, sinon vous continuerez à obtenir cette erreur.


La deuxième erreur est que, comme les deux autres personnes avant moi l'ont suggéré, vous devez avoir la gemme Bundler installée sur le serveur.

0voto

mu is too short Points 205090

Vous avez un PATH problème à vue de nez :

** [out :: 66.228.39.243] bash: bundle: command not found

Vous devez réparer votre PATH variable d'environnement.

0voto

Arun Kumar Arjunan Points 4437

Vous devez probablement installer bundler sur le serveur de production.

sudo gem install bundler

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X