资产管道:使用Capistrano部署我的Rails 3.1应用程序时出现问题

时间:2011-09-22 07:12:11

标签: ruby-on-rails ruby ruby-on-rails-3 capistrano asset-pipeline

我正在使用Ruby on Rails 3.1.0和Capistrano。我有一个问题,让应用程序在生产模式下工作(远程机器运行Ubuntu 10.4 - 我的本地机器是运行Snow Leopard 10.6.7的MacOS)。

当我使用Capistrano部署时,我收到此错误:

uninitialized constant Rake::DSL

当我尝试访问网页时出现此错误:

ActionView::Template::Error (application.css isn't precompiled)

要使应用程序在远程计算机上以生产模式运行,我应该怎么做?


在我的Capfile文件中,我有:

# Uncomment if you are using Rails' asset pipeline
load 'deploy/assets'

在我的Gemfile文件中,我有:

group :production do
  gem 'execjs'
  gem 'therubyracer'
end

如果我对load 'deploy/assets'发表评论我不再理解uninitialized constant Rake::DSL,但我仍然遇到ActionView::Template::Error (application.css isn't precompiled)错误。

3 个答案:

答案 0 :(得分:3)

请参阅:

http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets

"
If you have other manifests or individual stylesheets and JavaScript 
files to include, you can add them to the precompile array:

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js']
"

答案 1 :(得分:0)

尝试在production.rb中添加config.assets.compile = true。 希望有所帮助。

答案 2 :(得分:0)

尝试使用脚手架创建新的Rails 3.1项目并进行部署。如果一切正常,请将配置和其他文件与您的真实项目进行比较。