资产管道:使用Capistrano部署我的Rails 3.1应用程序时出现问题
我正在使用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)
错误。
看到:
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'] "
尝试在production.rb中添加config.assets.compile = true
。 希望有所帮助。
尝试使用脚手架创建新的Rails 3.1项目并进行部署。 如果一切正常,请将配置和其他文件与您的真实项目进行比较。