ruby-on-rails-3.1 – 在生产模式下,Rails 3.1和Scss,Haml,Compass和HTML-Boilerplate都有一个有效的Gemfile吗?

我有一个成功的Rails 3.0.x项目,Gemfile中包含以下Gems子集:

gem "compass"
gem "haml"
gem "haml-rails"
gem "html5-boilerplate"

我今天尝试升级到Rails 3.1并保留所有功能,并且这样做有很多问题.我还没有找到在生产模式下对我有用的配置,所以我现在正在开发模式.

我在这里遵循以下建议:

来自Railscast的> “Upgrading to Rails 3.1”:像往常一样非常好,并告诉我如何更改production.rb,development.rb和application.rb以更新资产管道的配置.但是没有接触指南针,sass和html5-boilerplate.
> “Setup html-boilerplate with Rails 3.1”包含最适合我的,但不起作用,因为ie_html方法在生产模式下不可用.注意到Gemfile中的更改
> “Unable to get Rails 3.1, Compass, Sass, Blueprint working on Heroku Cedar”这对我来说根本不起作用,我对编译的资产有问题.那里的尝试是让所有东西都是全局的,因为Compass和Html-Boilerplate之间存在依赖关系,并且由于方法ie_html,Html-Boilerplate必须是全局的.
>每次尝试只使用组中的一些Gems:资产块不成功.大多数时候,例如,指南针和sass,或指南针和html5-boilerplate无法实现.

所以我的问题是:是否有一个工作的Gemfile允许使用Haml,Sass,Compass,Html5-Boilerplate,当然还有Rails 3.1?

新Gemfile在开发模式下工作,但不在生产模式下:

gem "haml-rails"
group :assets do
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
  gem 'compass', '~> 0.12.alpha.0'
  gem "html5-boilerplate"
end
gem 'jquery-rails'

我试图创建一个新的Rails 3.1应用程序,并添加了一个图像资源.一切都很好,所以开发模式和生产模式之间没有区别.在我迁移的应用程序中,我现在具有以下状态:

>在开发模式下运行良好.
>禁用一些html5样板的东西来解决生产中的问题.
>在生产模式下找不到预编译的图像.

最佳答案 我有它在Heroku Cedar上工作.

gem "rails", "~> 3.1.0"
gem 'sass-rails', "~> 3.1.0"

group :assets do
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
  gem 'compass', '~> 0.12.alpha.0'
  gem 'html5-boilerplate'
end

但在git push heroku首次在本地预编译之前:

RAILS_ENV=production bundle exec rake assets:precompile

然后将所有公共/资产添加到您的git仓库并提交.然后:

git push heroku master

Heroku将检测public / assets / manifest.yml文件并只使用这些文件.

这对我有用,所以应该工作!干杯

点赞