2013-07-02 35 views
6

我有一個Rails 4應用程序,可以在本地正常工作,但是當我嘗試推送到Heroku時,在預編譯資產階段失敗。錯誤說cannot load such file -- rack/cache。我曾嘗試將gem「rack-cache」添加到我的Gemfile中,但沒有任何效果。Rails 4應用程序因機架/緩存而無法推送到Heroku

下面是控制檯在推動時的摘錄。

-----> Removing .DS_Store files 
-----> Ruby/Rails app detected 
-----> Using Ruby version: ruby-2.0.0 
-----> Installing dependencies using Bundler version 1.3.2 
     Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
     Fetching gem metadata from https://rubygems.org/........ 
     Fetching gem metadata from https://rubygems.org/.. 
     Fetching git://github.com/grosser/random_records.git 
     Installing rake (10.1.0) 
     Installing i18n (0.6.4) 
     Installing minitest (4.7.5) 
     Installing multi_json (1.7.7) 
     Installing atomic (1.1.10) 
     Installing thread_safe (0.1.0) 
     Installing tzinfo (0.3.37) 
     Installing activesupport (4.0.0) 
     Installing builder (3.1.4) 
     Installing erubis (2.7.0) 
     Installing rack (1.5.2) 
     Installing rack-test (0.6.2) 
     Installing actionpack (4.0.0) 
     Installing mime-types (1.23) 
     Installing polyglot (0.3.3) 
     Installing treetop (1.4.14) 
     Installing mail (2.5.4) 
     Installing actionmailer (4.0.0) 
     Installing actionpack-action_caching (1.0.0) 
     Installing activemodel (4.0.0) 
     Installing activerecord-deprecated_finders (1.0.3) 
     Installing arel (4.0.0) 
     Installing activerecord (4.0.0) 
     Installing bcrypt-ruby (3.0.1) 
     Installing sass (3.2.9) 
     Installing bootstrap-sass (2.3.2.0) 
     Installing carrierwave (0.8.0) 
     Installing climate_control (0.0.3) 
     Installing cocaine (0.5.1) 
     Installing coffee-script-source (1.6.2) 
     Installing execjs (1.4.0) 
     Installing coffee-script (2.2.0) 
     Installing thor (0.18.1) 
     Installing railties (4.0.0) 
     Installing coffee-rails (4.0.0) 
     Installing dalli (2.6.4) 
     Installing orm_adapter (0.4.0) 
     Installing warden (1.2.1) 
     Installing devise (3.0.0.rc) 
     Installing excon (0.6.6) 
     Installing fattr (2.2.1) 
     Installing formatador (0.2.4) 
     Installing json (1.8.0) 
     Installing net-ssh (2.6.7) 
     Installing net-scp (1.1.1) 
     Installing mini_portile (0.5.0) 
     Installing nokogiri (1.6.0) 
     Installing ruby-hmac (0.4.0) 
     Installing fog (0.9.0) 
     Installing font-awesome-rails (3.2.1.1) 
     Installing gmaps4rails (1.5.6) 
     Installing tilt (1.4.1) 
     Installing haml (4.0.3) 
     Installing highline (1.6.19) 
     Installing hike (1.2.3) 
     Installing jquery-rails (3.0.1) 
     Installing jquery-ui-rails (4.0.3) 
     Installing kaminari (0.14.1) 
     Installing kgio (2.8.0) 
     Installing mysql2 (0.3.12b4) 
     Installing nested_form (0.3.2) 
     Installing options (2.3.0) 
     Installing paperclip (3.4.2) 
     Installing pony (1.5) 
     Installing pr_geohash (1.0.0) 
     Installing progress_bar (1.0.0) 
     Installing protected_attributes (1.0.3) 
     Installing rack-pjax (0.7.0) 
     Using bundler (1.3.2) 
     Installing sprockets (2.10.0) 
     Installing sprockets-rails (2.0.0) 
     Installing rails (4.0.0) 
     Installing remotipart (1.0.5) 
     Installing safe_yaml (0.9.3) 
     Installing sass-rails (4.0.0) 
     Installing rails_admin (0.5.0) 
     Installing raindrops (0.11.0) 
     Using random_records (0.2.0) from git://github.com/grosser/random_records.git (at master) 
     Installing rsolr (1.0.9) 
     Installing sitemap_generator (4.1.0) 
     Installing sunspot (2.0.0) 
     Installing sunspot_rails (2.0.0) 
     Installing turbolinks (1.2.0) 
     Installing uglifier (2.1.1) 
     Installing unicorn (4.6.3) 
     Your bundle is complete! It was installed into ./vendor/bundle 
     Post-install message from haml: 
     HEADS UP! Haml 4.0 has many improvements, but also has changes that may break 
     your application: 
     * Support for Ruby 1.8.6 dropped 
     * Support for Rails 2 dropped 
     * Sass filter now always outputs <style> tags 
     * Data attributes are now hyphenated, not underscored 
     * html2haml utility moved to the html2haml gem 
     * Textile and Maruku filters moved to the haml-contrib gem 
     For more info see: 
     http://rubydoc.info/github/haml/haml/file/CHANGELOG.md 
     Post-install message from paperclip: 
     ################################################## 
     # NOTE FOR UPGRADING FROM PRE-3.0 VERSION  # 
     ################################################## 
     Paperclip 3.0 introduces a non-backward compatible change in your attachment 
     path. This will help to prevent attachment name clashes when you have 
     multiple attachments with the same name. If you didn't alter your 
     attachment's path and are using Paperclip's default, you'll have to add 
     `:path` and `:url` to your `has_attached_file` definition. For example: 
     has_attached_file :avatar, 
     :path => ":rails_root/public/system/:attachment/:id/:style/:filename", 
     :url => "/system/:attachment/:id/:style/:filename" 
     Post-install message from sitemap_generator: 
     NOTE: SitemapGenerator 4.x uses a new file naming scheme which is more standards-compliant. 
     If you're upgrading from 3.x, please see the release note in the README: 
     https://github.com/kjvarga/sitemap_generator#important-changes-in-version-4 
     The simple answer is that your index file is now called sitemap.xml.gz 
     and not sitemap_index.xml.gz, but please take a look and see what else has changed. 
     Cleaning up the bundler cache. 
-----> Writing config/database.yml to read from DATABASE_URL 
-----> Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     rake aborted! 
     cannot load such file -- rack/cache Be sure to add rack-cache to your Gemfile 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:374:in `load_rack_cache' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:311:in `block in default_middleware_stack' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:308:in `tap' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:308:in `default_middleware_stack' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:494:in `app' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application/finisher.rb:34:in `block in <module:Finisher>' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `instance_exec' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `run' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:55:in `block in run_initializers' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:54:in `run_initializers' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:215:in `initialize!' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/railtie/configurable.rb:30:in `method_missing' 
     /tmp/build_2yeff4uc2n89r/config/environment.rb:7:in `<top (required)>' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:189:in `require_environment!' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:249:in `block in run_tasks_blocks' 
     /tmp/build_2yeff4uc2n89r/vendor/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.0/lib/sprockets/rails/task.rb:54:in `block (2 levels) in define' 
     Tasks: TOP => environment 
     (See full trace by running task with --trace) 
! 
!  Precompiling assets failed. 
+0

嘗試以下一些方向上的這篇文章中:https://devcenter.heroku.com/articles/rack-cache-memcached-rails31 –

+0

在你的'Gemfile'中加入'rack-cache'之後,你是否運行'bundle'並提交更新的'Gemfile.lock'? – georgebrock

+0

然後你運行rake資產會發生什麼情況:本地預編譯? – jethroo

回答

0

我能夠通過刪除Gemfile.lock並運行包來解決此問題。

1

如果將config.action_dispatch.rack_cache配置指令設置爲true,也可能會發生這種情況。因此,如果您需要將此指令設置爲true,那麼您需要將gem 'rack-cache'添加到您的Gemfile並運行bundle。如果你不需要它,然後就到你的config文件夾,選擇相應的配置文件(application.rbenvironments/production.rb)和指令設置爲false

config.action_dispatch.rack_cache = false

相關問題