Rail 4应用程序上的Heroku预编译资产失败

时间:2013-05-08 04:43:40

标签: heroku asset-pipeline ruby-on-rails-4

我设置

config.assets.initialize_on_precompile = false
application.rb中的

。资产在本地通过运行

成功预编译
RAILS_ENV=production bundle exec rake assets:precompile

当推送到Heroku并且Heroku试图再次运行预编译时,未检测到manifest-fingerprint.json(Rails 4.0生成manifest.json而不是manifest.yml)。然后我得到错误:

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_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:771:in `initialize'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:771:in `new'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:771:in `connect'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:493:in `initialize'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `new'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:446:in `new_connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:456:in `checkout_new_connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:427:in `acquire_connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:364:in `block in checkout'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:363:in `checkout'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:273:in `block in connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:272:in `connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:552:in `retrieve_connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_handling.rb:79:in `retrieve_connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_handling.rb:53:in `connection'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/model_schema.rb:208:in `columns'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/model_schema.rb:242:in `column_defaults'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/locking/optimistic.rb:169:in `column_defaults'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/core.rb:164:in `initialize'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/inheritance.rb:24:in `new'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/inheritance.rb:24:in `new'
       /tmp/build_2ospgf61r6sch/lib/student_module.rb:11:in `acts_as_student'
       /tmp/build_2ospgf61r6sch/app/models/applicant.rb:4:in `<class:Applicant>'
       /tmp/build_2ospgf61r6sch/app/models/applicant.rb:3:in `<top (required)>'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `block in require'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:213:in `load_dependency'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:329:in `require_or_load'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:288:in `depend_on'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:206:in `require_dependency'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:464:in `block (2 levels) in eager_load!'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:463:in `each'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:463:in `block in eager_load!'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:461:in `each'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:461:in `eager_load!'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:346:in `eager_load!'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application/finisher.rb:56:in `each'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:30:in `instance_exec'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:30:in `run'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:55:in `block in run_initializers'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:54:in `run_initializers'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application.rb:213:in `initialize!'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/railtie/configurable.rb:30:in `method_missing'
       /tmp/build_2ospgf61r6sch/config/environment.rb:5:in `<top (required)>'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `block in require'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:213:in `load_dependency'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application.rb:187:in `require_environment!'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application.rb:247:in `block in run_tasks_blocks'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `call'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `each'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.0.rc4/lib/sprockets/rails/task.rb:16:in `block (2 levels) in define'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `call'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `each'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:205:in `block in invoke_prerequisites'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:203:in `each'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:203:in `invoke_prerequisites'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:183:in `block in invoke_with_call_chain'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:101:in `each'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling'
       /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:70:in `run'

似乎错误是由lib / student_module.rb中的文件引起的,这在config / initializers / student_init.rb中是必需的:

#lib/student_module.rb, the error pointed to this line:
user_attributes = User.new.abttributes.keys
#config/initializers/student_init.rb
require 'student_module'
ActiveRecord::Base.extend Student

错误可能是因为Heroku初始化了应用程序,其中包括与数据库的连接。但我不应该看到像

这样的消息
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?

因为我将config.assets.initialize_on_precompile设置为false并且还在本地预编译资产。

有任何解决此问题的建议吗?谢谢!

1 个答案:

答案 0 :(得分:22)

您需要在Heroku user-env-compile上启用实验室功能,以便应用程序在编译时访问环境变量。

heroku labs:enable user-env-compile -a myapp

https://devcenter.heroku.com/articles/labs-user-env-compile

了解详情