我有一个成功的Rails 3.0.x项目,Gemfile中包含以下子集Gems:
gem "compass"
gem "haml"
gem "haml-rails"
gem "html5-boilerplate"
我今天尝试升级到Rails 3.1并保留所有功能,但是遇到了许多问题。我还没有找到适用于生产模式的配置,所以现在我正在使用开发模式。
我遵循了这里的建议:
- "升级到Rails 3.1"来自Railscast:像往常一样非常好,告诉我如何更改
production.rb
、development.rb
和application.rb
以更新资产管道的配置。但没有涉及compass、sass和html5-boilerplate。 - "使用Rails 3.1设置html-boilerplate"对我来说最合适,但不起作用,因为在生产模式下方法
ie_html
不可用。Gemfile中的更改已经记录下来了。 - "无法在Heroku Cedar上让Rails 3.1、Compass、Sass、Blueprint工作"这对我根本不起作用,我在编译资产时遇到问题。尝试将所有内容设为全局,因为Compass和Html-Boilerplate之间存在依赖关系,而Html-Boilerplate必须是全局的,因为它使用了方法
ie_html
。 - 只使用
group :assets
块中的某些宝石的每次尝试都不成功。大多数情况下,例如compass和sass之间或compass和html5-boilerplate之间的依赖关系无法满足。
新的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-boilerplate的东西以解决生产环境中的问题。
- 生产模式下尚未找到预编译的图像。