【问题标题】:Heroku precompile errorHeroku 预编译错误
【发布时间】:2012-12-02 05:38:14
【问题描述】:

将我的 rails 应用程序推送到 heroku 时,预编译不起作用,现在每当我尝试执行任何操作(重新启动 heroku、重置数据库、迁移数据库、重命名 heroku 等)时,我都会收到此错误:

更新:似乎 Bundler 在我的笔记本电脑上也无法在本地运行。

/usr/local/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:52:in `initialize': Valid types are [:development, :runtime], not nil (ArgumentError)
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:371:in `new'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:371:in `search'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:361:in `gems_size'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:159:in `start'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:159:in `map'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:159:in `start'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:128:in `resolve'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:127:in `catch'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/resolver.rb:127:in `resolve'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/definition.rb:182:in `resolve'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/definition.rb:113:in `specs'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/gems/bundler-1.2.0/lib/bundler/environment.rb:27:in `specs'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194@global/gems/rubygems-bundler-1.1.0/lib/rubygems-bundler/noexec.rb:56:in `candidate?'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194@global/gems/rubygems-bundler-1.1.0/lib/rubygems-bundler/noexec.rb:74:in `setup'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194@global/gems/rubygems-bundler-1.1.0/lib/rubygems-bundler/noexec.rb:89
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/aaa/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:9

原来推送中是这样的:

   Running: rake assets:precompile
   rake aborted!
   could not connect to server: Connection refused
   Is the server running on host "127.0.0.1" and accepting
   TCP/IP connections on port 5432?
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `new'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `connect'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/postgresql_adapter.rb:326:in `initialize'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `new_connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:in `checkout_new_connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:247:in `block (2 levels) in checkout'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `loop'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `block in checkout'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:239:in `checkout'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:102:in `block in connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:101:in `connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in `retrieve_connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:in `retrieve_connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in `connection'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/model_schema.rb:308:in `clear_cache!'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/railtie.rb:97:in `block (2 levels) in <class:Railtie>'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:418:in `_run__1193294461922673159__prepare__3401192585586483770__callbacks'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:405:in `__run_callback'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:385:in `_run_prepare_callbacks'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/callbacks.rb:81:in `run_callbacks'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/reloader.rb:74:in `prepare!'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/reloader.rb:48:in `prepare!'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application/finisher.rb:47:in `block in <module:Finisher>'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `instance_exec'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:30:in `run'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:55:in `block in run_initializers'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `each'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/initializable.rb:54:in `run_initializers'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:136:in `initialize!'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/railtie/configurable.rb:30:in `method_missing'
   /tmp/build_13mv4cuh78fg0/config/environment.rb:5:in `<top (required)>'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `block in require'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:236:in `load_dependency'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.9/lib/active_support/dependencies.rb:251:in `require'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:103:in `require_environment!'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/railties-3.2.9/lib/rails/application.rb:297:in `block (2 levels) in initialize_tasks'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/sprockets/assets.rake:93:in `block (2 levels) in <top (required)>'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/sprockets/assets.rake:60:in `block (3 levels) in <top (required)>'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/sprockets/assets.rake:23:in `invoke_or_reboot_rake_task'
   /tmp/build_13mv4cuh78fg0/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.9/lib/sprockets/assets.rake:29:in `block (2 levels) in <top (required)>'
   Tasks: TOP => environment
   (See full trace by running task with --trace)
   Precompiling assets failed, enabling runtime asset compilation

感谢任何人在解决此问题方面提供的任何帮助。

更新:这是我的 Gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.9'
gem 'pg'
gem 'redis'
gem 'bcrypt-ruby', '3.0.1'
gem 'jquery-rails'
gem 'rails-i18n'
gem 'globalize3', '~> 0.2.0'
gem 'batch_translations', '~> 0.1.2'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

【问题讨论】:

  • 能否提供您的 Gemfile 代码?
  • @LeoCorrea 我在上面包含了我的 Gemfile。

标签: ruby-on-rails heroku


【解决方案1】:

我在这里找到了一个看起来有点像你在这里遇到的问题的解决方案

Assets:precompile error heroku

它基本上说将这一行 config.assets.initialize_on_precompile = false 添加到您的 application.rb 文件中。显然 Rails 3.2 和 Heroku 存在问题。这可能会也可能不会解决您的问题,但会缩小可能性。

您可能还想尝试在您的 Gemfile 中添加以下内容:ruby "1.9.3" 就在 source 行下方。让我知道这个是否奏效。还要确保在添加该行后运行 bundle install。

【讨论】:

  • 好的,我认为我的 rails 环境有问题。我无法运行 bundle install 并运行 bundle update 导致此错误:Could not find gem 'rails (= 1.9.3) ruby' in the gems available on this machine. 我想我将在我的计算机上重新安装 rails 看看是否有帮助。
  • 您的环境使用的是 rvm 还是 rbenv?
  • 我正在使用 rvm。我似乎已经通过重新安装 rails 解决了本地机器上的问题,但推送到 heroku 的原始问题仍然存在。
  • 它不能解决问题,因为如果您设置 precompile false heroku 将给出未预编译资产的错误。
  • @TaimoorChangaiz 您意识到这是 Heroku 提供的解决方案吧?它解决了很多人的问题,包括我自己。此外,如果您在推送之前预编译资产,它不会给您该错误...
猜你喜欢
  • 2012-06-27
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
  • 2015-03-26
相关资源
最近更新 更多