嘿伙计们,我在尝试将我的 rails 3.2.6 应用程序部署到生产环境时遇到了一些问题,部署似乎一直很好,直到它开始预编译资产这是我得到的错误:
command finished in 1740ms
* executing "cd /home/deployer/apps/stealthygecko/releases/20120717222341 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
servers: ["xx.xxx.xxx.xxx"]
[xx.xxx.xxx.xxx] executing command
** [out :: xx.xxx.xxx.xxx] rake aborted!
** [out :: xx.xxx.xxx.xxx] no such file to load -- addressable/uri
** [out :: xx.xxx.xxx.xxx]
** [out :: xx.xxx.xxx.xxx] (See full trace by running task with --trace)
command finished in 3131ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/deployer/apps/stealthygecko/releases/20120717222341; true"
servers: ["xx.xxx.xxx.xxx"]
[xx.xxx.xxx.xxx] executing command
command finished in 786ms
failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'ruby-1.9.2@stealthygecko_rewrite' -c 'cd /home/deployer/apps/stealthygecko/releases/20120717222341 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile'"
我试过设置“config.assets.compile = false”看看这是否有帮助,但我仍然得到同样的错误。
这是我的部署脚本:
server "xx.xxx.xxx.xxx", :web, :app, :db, primary: true
depend :remote, :gem, "bundler", ">=1.1.3"
depend :remote, :gem, "rake", ">=0.9.2.2"
set :application, "stealthygecko"
set :user, :"deployer"
set :deploy_to, "/home/#{user}/apps/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false
set :scm, :git
set :repository, "git@github.com:StealthyGecko/stealthygecko.git"
set :branch, "master"
default_run_options[:pty] = true
set :ssh_options, {:forward_agent => true}
set :ruby_version, "ruby-1.9.2"
set :gemset_name, "stealthygecko_rewrite"
set :rvm_ruby_gemset, "#{ruby_version}@#{gemset_name}"
set :bundle_without, [:darwin, :development, :test]
require "rvm/capistrano"
load 'deploy/assets'
set :rvm_ruby_string, "#{rvm_ruby_gemset}" # Select the gemset
set :rvm_type, :user # RVM install is in the deploying user's home directory
#
before "deploy:assets:precompile", "bundle:install"
after "deploy", "deploy:cleanup" # keep only the last 5 releases
namespace :deploy do
%w[start stop restart].each do |command|
desc "#{command} unicorn server"
task command, roles: :app, except: {no_release: true} do
run "cd #{deploy_to}/current && /etc/init.d/unicorn_stealthygecko restart"
end
end
task :setup_config, roles: :app do
puts "Symlinking nginx and unicorn configs"
sudo "ln -nfs #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application}"
sudo "ln -nfs #{current_path}/config/unicorn_init.sh /etc/init.d/unicorn_#{application}"
run "mkdir -p #{shared_path}/config"
put File.read("config/database.example.yml"), "#{shared_path}/config/database.yml"
puts "Now edit the config files in #{shared_path}."
end
after "deploy:setup", "deploy:setup_config"
task :symlink_config, roles: :app do
puts "Symlinking database yml"
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
puts "Database Symlink done!"
end
after "deploy:finalize_update", "deploy:symlink_config"
desc "Make sure local git is in sync with remote."
task :check_revision, roles: :web do
unless `git rev-parse HEAD` == `git rev-parse origin/master`
puts "WARNING: HEAD is not the same as origin/master"
puts "Run `git push` to sync changes."
exit
end
end
before "deploy", "deploy:check_revision"
end
抱歉,如果它是从我读过的各种教程拼凑而成的,有点混乱。这是我的 Gemfile:
source 'http://rubygems.org'
gem 'rake'
gem 'rails', '3.2.6'
gem 'mysql2'
gem 'bcrypt-ruby', '~> 3.0.0'
gem 'gravtastic'
gem "friendly_id"
gem "rinku", '~>1.2.2', :require => 'rails_rinku'
gem "videawesome"
gem "will_paginate", "~>3.0.3"
gem "tweet-button"
gem "bitly"
gem "sanitize"
gem "newrelic_rpm"
gem 'capistrano'
gem 'rvm-capistrano'
gem "unicorn", "~> 4.2.1"
gem "twitter", "2.2.2"
gem 'instagram', :git => 'git://github.com/StealthyGecko/instagram-ruby-gem-lee.git'
group :assets do
gem 'coffee-script'
gem 'jquery-rails'
gem 'uglifier'
gem 'therubyracer'
gem 'execjs'
gem 'twitter-bootstrap-rails'
end
gem 'rspec-rails', :group => [:test, :development]
group :test do
gem 'sqlite3'
gem 'guard-rspec'
gem 'capybara'
gem 'launchy'
gem 'shoulda', '3.0.0.beta2'
gem 'factory_girl_rails'
gem 'ruby-debug19', :require => 'ruby-debug'
gem 'turn', :require => false
end
我知道这有点远,但如果有人能发现我哪里出错了,或者如果有人遇到这个问题并设法解决它,请告诉我,因为我一直在努力解决这个问题现在几个小时。
当它失败时,它似乎说“没有要加载的文件--addressable/uri”但是我不确定它在哪里使用以及为什么它被用于编译资产
有什么建议么?