Конвейер активов не работает в производственной среде рельсов

У меня проблема с развертыванием на VPS с помощью Rails. Мое приложение отлично работает в среде разработки, но когда я запускаю его в производство с помощью Capistrano, у меня возникают проблемы.

Я использую unicorn, rails 3.2.13 и ruby ​​1.9.3.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я посещаю свой производственный сайт, я получаю сообщение об ошибке «Шаблон отсутствует»:

Template is missing

Missing template site/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/home/deployer/apps/my-app/releases/20130417030832/app/views" * "/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/devise-2.2.3/app/views" * "/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/bundler/gems/piggybak_paypal-b892954868c7/app/views" * "/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/piggybak_variants-0.0.15/app/views" * "/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/piggybak-0.6.28/app/views" * "/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/bundler/gems/rails_admin-b8465f738261/app/views" * "/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/gems/kaminari-0.14.1/app/views"

Итак, я думаю, что это может быть проблема предварительной компиляции активов. Когда я запускаю rake assets:precompile в своей локальной среде разработки, я получаю сообщение:

/Users/ac/.rvm/rubies/ruby-1.9.3-p392/bin/ruby /Users/ac/.rvm/gems/ruby-1.9.3-p392/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
[RailsAdmin] RailsAdmin initialization disabled by default. Pass SKIP_RAILS_ADMIN_INITIALIZER=false if you need it.
rake aborted!
FATAL:  password authentication failed for user "deployer"
/Users/ac/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1216:in `initialize'
/Users/ac/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1216:in `new'
/Users/ac/.rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1216:in `connect'
...

deployer — это имя пользователя моей рабочей базы данных, которое находится в файле database.yml в рабочем пространстве имен. Я не уверен, почему он пытается загрузить это. Я определенно запускаю сервер в режиме разработки.

Я также заметил это в моем файле unicorn.log на моем рабочем сервере:

I, [2013-04-17T04:44:46.626587 #16199]  INFO -- : executing ["/home/deployer/apps/my-app/shared/bundle/ruby/1.9.1/bin/unicorn", "-D", "-c", "/home/deployer/apps/my-app/current/config/unicorn.rb", "-E", "production", {12=>#<Kgio::UNIXServer:fd 12>}] (in /home/deployer/apps/my-app/releases/20130417044320)
I, [2013-04-17T04:44:46.627160 #16199]  INFO -- : forked child re-executing...
/home/deployer/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.5/lib/bundler/definition.rb:16:in `build': /home/deployer/apps/my-app/releases/20130417020329/Gemfile not found (Bundler::GemfileNotFound)
  from /home/deployer/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.5/lib/bundler.rb:148:in `definition'
  from /home/deployer/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.5/lib/bundler.rb:116:in `setup'
  from /home/deployer/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
  from /home/deployer/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
  from /home/deployer/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
E, [2013-04-17T04:44:46.777335 #18166] ERROR -- : reaped #<Process::Status: pid 16199 exit 1> exec()-ed

Вот мой гемфайл:

source 'https://rubygems.org'

gem 'rails', '3.2.13'

gem 'pg'

gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git'

gem 'piggybak', '0.6.28'
gem "piggybak_variants", '0.0.15'
gem 'piggybak_paypal', :git => 'git://github.com/timmyc/piggybak_paypal.git'

gem 'devise'
gem "cancan"

gem 'countries', :require => 'iso3166'

gem "figaro"

gem 'redactor-rails'
gem "carrierwave"
gem 'rmagick', '2.13.2'
gem "mini_magick"
gem "fog", "~> 1.3.1"

gem 'turbolinks'

gem 'tire', '0.5.7' # elastic search

gem 'kaminari'

gem "friendly_id", "~> 4.0.9"
gem 'acts-as-taggable-on', '>= 2.3.1'
gem 'acts_as_list'
gem 'meta-tags', :require => 'meta_tags'


#group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'haml-rails'
  gem 'uglifier', '>= 1.0.3'
#end

group :development do
  gem 'bullet'
  gem 'meta_request'
end

gem 'jquery-rails'

gem "unicorn-rails"

gem 'capistrano'
gem 'rvm-capistrano'

Мысли будут высоко оценены. Заранее спасибо.


person anthony    schedule 17.04.2013    source источник
comment
Почему эта строка прокомментирована #group :assets do в Gemfile. Можешь раскомментировать.   -  person Srikanth Jeeva    schedule 17.04.2013
comment
Я раскомментировал это, потому что я тестировал. Он не работал ни с блоком :asset, ни без него.   -  person anthony    schedule 17.04.2013
comment
Вы можете видеть из журнала единорога, что он не может найти gemfile, кто-нибудь знает, почему? /home/deployer/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.5/lib/bundler/definition.rb:16:в сборке: /home/deployer/apps/ my-app/releases/20130417020329/Gemfile не найден (Bundler::GemfileNotFound)   -  person anthony    schedule 17.04.2013


Ответы (1)


привет, можете ли вы поместить драгоценный камень вне пути актива:

gem "haml"

gem 'haml-rails'

и раскомментируйте assets_path

и пакетная установка

или вы можете сослаться:

Как заставить Haml работать с Rails?

person Bajirao Pheshwe    schedule 17.04.2013
comment
Как видите, блок assets_path уже закомментирован. Я добавил драгоценный камень 'haml', но он все еще не работал. «haml-rails» в любом случае должен работать без «haml». - person anthony; 17.04.2013