部署 – Capistrano编译资产错误 – 资产:预编译:非文化?

我的应用程序似乎正在正确部署,但我收到此错误
* executing "cd /home/deploy/tomahawk/releases/20120208222225 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
    servers: ["ip_address"]
    [ip_address] executing command
*** [err :: ip_address] /opt/ruby/bin/ruby /opt/ruby/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets

在这里试过尝试编译资产的解决方案:http://lassebunk.dk/2011/09/03/getting-your-assets-to-work-when-upgrading-to-rails-3-1/

在这里http://railsmonkey.net/2011/08/deploying-rails-3-1-applications-with-capistrano/

在这里http://dev.af83.com/2011/09/30/capistrano-rails-3-1-assets-can-be-tricky.html

这是我的deploy.rb:

require "bundler/capistrano"
load 'deploy/assets'

set :default_environment,{
 'PATH' => "/opt/ruby/bin/:$PATH"
}

set :application,"tomahawk"
set :repository,"repo_goes_here"
set :deploy_to,"/home/deploy/#{application}"
set :rails_env,'production'
set :branch,"master"

set :scm,:git
set :user,"deploy"
set :runner,"deploy"
set :use_sudo,true

role :web,"my_ip"                         
role :app,"my_ip"                        
role :db,"my_ip",:primary => true 

set :normalize_asset_timestamps,false
after "deploy","deploy:cleanup"

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

    [:start,:stop].each do |t|
        desc "#{t} task is a no-op with mod_rails"
        task t,:roles => :domain do ; end
    end
end

task :after_update_code do  
run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
end

解决方法

首先不要忘记在下面添加宝石
group :production do
 gem 'therubyracer'
 gem 'execjs'
end

然后在你的cap文件中只需在after_update_code中添加这一行

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

这对我来说很好;)

干杯,

Gregory HORION

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...