25

私は助けが必要です。アプリを heroku にアップロードしようとすると、このエラーが発生します。いくつか間違っていました。ありがとう

       Using rake (10.1.0)
       ...
       Using tlsmail (0.0.1)
       Using uglifier (2.1.2)
       Your bundle is complete! It was installed into ./vendor/bundle
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant SMTPSession
       ...
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: already initialized constant APOPSession
       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_e8889be5-168c-49ed-81e7-b71061fc82ee/Rakefile:7)
       ...
       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_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize'
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `new'
       ...
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/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.
4

4 に答える 4

29

Heroku ドキュメントから:

これは、アプリが rake assets:precompile の一部としてデータベースに接続しようとしていることを意味します。構成変数が環境に存在しないため、Rails を満たすためにプレースホルダー DATABASE_URL を使用します。

この問題を解決するには、次の行が に表示されていることを確認してくださいconfig/application.rb

# config/application.rb
config.assets.initialize_on_precompile = false

追加したら、変更をコミットし、Heroku に再デプロイします。アセットは、アプリケーションがデータベースに接続しようとせずにコンパイルされ、発生しているエラーが解決されるはずです。

更新

スタックトレースの 46 行目に次のメッセージが含まれています。Devise.secret_key was not set.

Devise の作者José Valimによると、この問題は次の方法で解決できます。

以下をDeviseイニシャライザに追加してください:

config.secret_key = '-- 秘密鍵 --'

または次の解決策が多くのユーザーで機能しているようです。

routes.rb ファイルに移動し、devise_for :installs という行をコメントアウトしました。

その後、戻って rails generate devise:install を再実行しました。それでもうまくいかない場合は、Gemfile の Devise への参照を次のように編集して以前のバージョンの devise を使用してください: gem 'devise', '3.0.3' そして、上記の手順に従います。

于 2013-10-29T05:49:28.457 に答える
3

github を使用していて、develop ブランチにいる間に heroku にプッシュしている場合は、それを行わず、master ブランチに移動して、develop での更新を取得してください。git merge develop

その後、

rails precompile:assets
git add -A
git commit -m "Precompile assets"
git push heroku master

展開した Web サイトを開く場合

heroku open

何も表示されない場合は、まず次の方法でデータベースを移行します。

heroku run rails db:migrate
heroku open
于 2019-07-24T11:38:37.703 に答える
1

同じエラー メッセージで Heroku proceompiling に失敗しました。Carrierwave が原因で、SECRET_KEY_BASEHeroku の設定を行っていなかったことが原因です。

于 2018-10-23T06:27:38.180 に答える