Capfileに
load 'deploy/assets'
を追加すると、デプロイ時にassets:precompileを実行できるが、assets:precompile実行時に、
/usr/bin/env: ruby : そのようなファイルやディレクトリはありません
というエラーになってしまった。
ssh経由でのshellの実行時にPATHが通っていないのが原因と思われる。
解決方法
CapistranoでPATH等の環境変数を設定するには、:default_environmentを使う。
set :default_environment, { 'PATH' => "/opt/ruby-enterprise-1.8.7-2011.03/bin:$PATH" }
Change PATH environment with Rails and Capistrano - pastbedti.me
How do I configure capistrano to use my rvm version of Ruby - Stack Overflow
プリコンパイルする場合、config/environments/production.rbで、
config.assets.compile = false
にするが、assetsにapplication.js, application.css以外のjs、cssを使う場合は、以下のようにconfig.assets.precompileに追加する必要がある。追加しないと、smart_phone.css isn't precompiled のようなエラーになる。
config/environments/production.rb
config.assets.compile = false # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) config.assets.precompile += %w( smart_phone.css web_app_theme.css )