Heroku:保存缓存时遇到错误

K2x*_*2xL 10 ruby-on-rails heroku ruby-on-rails-3

一切都在当地工作正常,但推到Heroku时:

   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/bc1b787c8640c68bf42fc69efbef227d36428060/_carousel.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/bc1b787c8640c68bf42fc69efbef227d36428060/_hero-unit.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/bc1b787c8640c68bf42fc69efbef227d36428060/_utilities.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/5b1569a9810eac207f22942f2921f0820863a2d6/exams.css.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/5b1569a9810eac207f22942f2921f0820863a2d6/home.css.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/5b1569a9810eac207f22942f2921f0820863a2d6/lessons.css.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/5b1569a9810eac207f22942f2921f0820863a2d6/questions.css.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/5b1569a9810eac207f22942f2921f0820863a2d6/scaffolds.css.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
   Warning. Error encountered while saving cache /tmp/build_1b5c442a-d24e-4f80-9755-a0bd15d7f029/tmp/cache/sass/5b1569a9810eac207f22942f2921f0820863a2d6/sections.css.scssc: can't dump anonymous class #<Class:0x007f2583f02288>
Run Code Online (Sandbox Code Playgroud)

最终我得到:

   Warning. Error encountered while saving cache /tmp/build_ccaceaf0-2d8f-4d84-8284-9f5fcb7ced3f/tmp/cache/sass/6b13061e65d1f1cd905accb7f7211a333a70c956/sections.css.scssc: can't dump anonymous class #<Class:0x007f02dbceaa88>
   DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /tmp/build_ccaceaf0-2d8f-4d84-8284-9f5fcb7ced3f/Rakefile:7)
   DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /tmp/build_ccaceaf0-2d8f-4d84-8284-9f5fcb7ced3f/Rakefile:7)

 !     Timed out compiling Ruby app (15 minutes)
 !     See https://devcenter.heroku.com/articles/slug-compiler#time-limit
Run Code Online (Sandbox Code Playgroud)

我只粘贴了这个出现次数的一小部分.

我的gemfile:

ruby '2.0.0'
gem 'rails', '3.2.11'
group :assets do
  gem 'sass-rails' #,   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'bootstrap-sass'#, '2.3.2.0'
gem 'cancan'
gem 'devise'
gem 'figaro'
gem 'haml-rails'
gem 'mongoid'
gem 'rolify'
gem 'simple_form'
gem 'thin'
gem 'country_select'
group :development do
  gem 'better_errors'
  gem 'binding_of_caller', :platforms=>[:mri_19, :rbx]
  gem 'guard-bundler'
  gem 'guard-rails'
  gem 'guard-rspec'
  gem 'html2haml'
  gem 'quiet_assets'
  gem 'rb-fchange', :require=>false
  gem 'rb-fsevent', :require=>false
  gem 'rb-inotify', :require=>false
  gem "switch_user"
end
group :development, :test do
  gem 'factory_girl_rails'
  gem 'rspec-rails'
end
group :test do
  gem 'database_cleaner'
  gem 'email_spec'
  gem 'mongoid-rspec'
end
gem "ckeditor"
#gem "binding_of_caller"
gem "mongoid-paperclip", :require => "mongoid_paperclip", :git=>'https://github.com/meskyanichi/mongoid-paperclip'
gem 'aws-sdk', '~> 1.3.4'
gem "flat-ui-rails"
gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby'
gem "mongoid_slug", "~> 2.0.1"
Run Code Online (Sandbox Code Playgroud)

我的production.rb文件启用了以下属性

  config.cache_classes = true

  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  config.serve_static_assets = true

  config.assets.compress = true
  config.assets.compile = false

  config.assets.digest = true
  config.assets.initialize_on_precompile = false
Run Code Online (Sandbox Code Playgroud)

我的rails版本是Rails 3.2.11

bcb*_*bcb 37

这与最近将sass gem升级到3.3.0有关.sass gem是其他几个sass gem的依赖项,所以即使你的Gemfile中没有它,它也可能会被加载.在本地和Heroku上进行"捆绑展示",我相当肯定你会发现它们是不同的版本(sass在几天前升级到3.3.0).

加:

gem 'sass', '3.2.13'
Run Code Online (Sandbox Code Playgroud)

到您的Gemfile,这应该为您解决问题.然后在github上为这个gem提交一个问题.

希望这有帮助,它对我有用!

  • 为我工作.虽然它有点令人沮丧,因为1.我们不知道什么时候能够删除第2行.我不知道是否应该在`group:assets`中添加该行... (4认同)

Jer*_*emy 7

这是Sass 3.3.0中的已知错误,Sprockets导入器是非序列化的,因此不可缓存,从而导致此错误.对于错误报告,请看这个.没有缓存,Sass编译速度极慢,导致heroku服务器超时.