我的应用在本地工作。我部署到heroku并收到应用程序错误。我似乎无法弄清楚出了什么问题。在下面发布日志,有什么用处吗?
错误
应用程序中发生错误,无法提供您的页面。请稍后再试。
如果您是应用程序所有者,请查看日志以获取详细信息。
日志
heroku日志
2014-07-04T04:40:15.871014+00:00 heroku[web.1]: State changed from starting to crashed
2014-07-04T04:40:16.982435+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=kitchen-ninja.herokuapp.com request_id=aa152804-e6f0-4a2f-9c27- c9fb580272f3 fwd="100.1.249.244" dyno= connect= service= status=503 bytes=
2014-07-04T04:40:17.620440+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=kitchen-ninja.herokuapp.com request_id=a3c43716-35b3-43b5-9426-fb2f3f400c1b fwd="100.1.249.244" dyno= connect= service= status=503 bytes=
2014-07-04T04:40:17.783162+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=kitchen-ninja.herokuapp.com request_id=2a8c63d7-3906-48c7-85de-abe64c2fd247 fwd="100.1.249.244" dyno= connect= service= status=503 bytes=
2014-07-04T04:40:15.860319+00:00 heroku[web.1]: Process exited with status 1
的Gemfile
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.2'
gem 'pg', '0.15.1'
gem 'mail_form', '~> 1.5.0.rc'
gem 'less-rails'
gem 'therubyracer', '~> 0.12.1'
gem 'simple_form'
gem 'pony'
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'jquery-turbolinks'
gem 'jbuilder', '1.0.2'
gem 'paperclip', '4.1'
gem 'devise'
group :development do
gem 'rspec-rails', '2.13.1'
gem 'guard-rspec', '2.5.0'
end
group :test do
end
group :doc do
gem 'sdoc', '0.3.20', require: false
end
group :production do
gem 'rails_12factor', '0.0.2'
end
答案 0 :(得分:8)
在必须部署到heroku之后,需要在开始工作之前运行rake db:migrate。转到您推送应用程序的文件夹并执行
heroku run rake db:migrate
这应该可以解决您遇到的503错误。
答案 1 :(得分:4)
Heroku上有两种类型的Rails应用程序错误:
<强>的Heroku 强>
这意味着 Heroku 在平台级别存在问题(无法加载I.E Rails)。这通常是database
问题,可以通过确保创建db
或从CMD运行heroku run rake db:migrate
命令来解决此问题
-
<强>滑轨强>
这是 Rails 特定错误,当您点击内部时出现问题的Rails应用时会导致此错误。这只会显示整个Heroku平台是否运行良好,这意味着如果你有db
设置等 - 意味着代码中的某些内容被破坏
这里的区别在于,一个错误是platform
特定的,而另一个错误是application
特定的。如果您遇到上述(Heroku
)错误,则需要确保可以解决Heroku
平台本身存在的任何问题 - 可以通过以下方式解决:
$ heroku run rake db:migrate
当然,考虑到您为Rails应用程序设置了数据库。如果是这种情况,您需要确保在生产中设置了数据库,然后在config/database.yml
答案 2 :(得分:1)
让我更好地理解了什么是错的。事实证明我的用户控制器意外结束了......
heroku run rails console
Running `rails console` attached to terminal... up, run.6073
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-
4.0.2/lib/active_support/dependencies.rb:229:in `require':
/app/app/controllers/users_controller.rb:68: syntax error, unexpected keyword_end,
expecting end-of-input (SyntaxError)
答案 3 :(得分:1)
这是一篇旧帖子,但是如果你在日志中没有原因/ H10错误代码的情况下使应用程序崩溃,请确保使用的是Puma。我面对同样没有任何工作,但添加Puma来解决它。基本上是:
将Puma添加到您的Gemfile中:
gem 'puma'
在Procfile中将Puma设置为Web进程的服务器:
web: bundle exec puma -C config/puma.rb
在config/puma.rb
为Puma创建配置文件。
Heroku推荐以下内容,但可根据您的需求进行定制
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count<br/>
preload_app!<br/>
rackup DefaultRackup<br/>
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'<br/>
on_worker_boot do
ActiveRecord::Base.establish_connection
end
更多信息可以在heroku.com找到:Deploying Rails Applications with the Puma Web Server。
答案 4 :(得分:0)
我遇到了同样的问题,我花了很多时间作为Ruby on Rails的初学者,找到解决方案。感谢Shyam Bhimani,他link给了我。无论如何,解决方案如下:
注意:您应该位于应用程序文件夹内的SSH屏幕前方。现在输入以下内容:
$ bundle update
$ heroku run rake db:migrate
$ heroku run rake db:schema:load
$ git init
$ git add .
$ git commit -am "some comment"
$ git push heroku master
$ git push heroku master
$ heroku open
我很高兴让我的应用程序在Heroku上工作,而我正在回答这个问题,以帮助Shayam帮助我。此致