Tôi đã tạo ứng dụng Rails 4 beta mới và triển khai nó lên Heroku (sử dụng Ruby 2.0.0 và Unicorn qua Procfile).Rails 4 ứng dụng trên Heroku là 500ing, nhưng không có thông báo lỗi trong nhật ký
Nó chạy tốt tại địa phương với foreman start
, nhưng khi tôi truy cập trang chủ của ứng dụng triển khai, tôi chỉ nhận được các tiêu chuẩn Heroku 500 lỗi:
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
Tuy nhiên, trong các bản ghi, không có lỗi . Tôi không biết những gì đang gây ra 500.
Đây là kết quả từ git push heroku master
cuối cùng của tôi:
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 656 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
-----> 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
Using rake (10.0.4)
Using i18n (0.6.4)
Using minitest (4.7.3)
Using multi_json (1.7.2)
Using atomic (1.1.8)
Using thread_safe (0.1.0)
Using tzinfo (0.3.37)
Using activesupport (4.0.0.beta1)
Using builder (3.1.4)
Using erubis (2.7.0)
Using rack (1.5.2)
Using rack-test (0.6.2)
Using actionpack (4.0.0.beta1)
Using mime-types (1.23)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.5.3)
Using actionmailer (4.0.0.beta1)
Using activemodel (4.0.0.beta1)
Using activerecord-deprecated_finders (0.0.3)
Using arel (4.0.0)
Using activerecord (4.0.0.beta1)
Using coffee-script-source (1.6.2)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using json (1.7.7)
Using rdoc (3.12.2)
Using thor (0.18.1)
Using railties (4.0.0.beta1)
Using coffee-rails (4.0.0)
Using hike (1.2.2)
Using jbuilder (1.0.2)
Using jquery-rails (2.2.1)
Using kgio (2.8.0)
Using mysql2 (0.3.11)
Using bundler (1.3.2)
Using tilt (1.3.7)
Using sprockets (2.9.3)
Using sprockets-rails (2.0.0.rc4)
Using rails (4.0.0.beta1)
Using raindrops (0.11.0)
Using sass (3.2.8)
Using sass-rails (4.0.0.rc1)
Using turbolinks (1.1.1)
Using uglifier (2.0.1)
Using unicorn (4.6.2)
Your bundle is complete! It was installed into ./vendor/bundle
Cleaning up the bundler cache.
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
I, [2013-04-23T22:28:44.559735 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/rails-d8fb6a2617998f32edf5edb354fc5326.png
I, [2013-04-23T22:28:49.911890 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-d4a508061cd56ce9e544945495285e0c.js
I, [2013-04-23T22:28:50.120141 #871] INFO -- : Writing /tmp/build_33m76p0rij8a5/public/assets/application-a3b89b66a8471f3e75abb239e3b35c7d.css
Asset precompilation completed (8.30s)
-----> Rails plugin injection
-----> Discovering process types
Procfile declares types -> web
Default types for Ruby/Rails -> console, rake, worker
-----> Compiled slug size: 35.0MB
-----> Launching... done, v21
http://blofs.herokuapp.com deployed to Heroku
To [email protected]:blofs.git
32e51a2..37d989c master -> master
Và đây là các bản ghi từ push rằng:
2013-04-23T22:28:06.650049+00:00 heroku[slugc]: Slug compilation started
2013-04-23T22:29:11.194613+00:00 heroku[api]: Release v21 created by [email protected]
2013-04-23T22:29:11.365908+00:00 heroku[api]: Deploy 37d989c by [email protected]
2013-04-23T22:29:11.441066+00:00 heroku[web.1]: State changed from up to starting
2013-04-23T22:29:11.932952+00:00 heroku[slugc]: Slug compilation finished
2013-04-23T22:29:12.858139+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2013-04-23T22:29:13.194707+00:00 app[web.1]: I, [2013-04-23T22:29:13.194495 #2] INFO -- : reaped #<Process::Status: pid 5 exit 0> worker=0
2013-04-23T22:29:13.194902+00:00 app[web.1]: I, [2013-04-23T22:29:13.194747 #2] INFO -- : master complete
2013-04-23T22:29:14.312014+00:00 heroku[web.1]: Process exited with status 0
2013-04-23T22:29:14.338943+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 25281 -E $RACK_ENV`
2013-04-23T22:29:15.717687+00:00 app[web.1]: I, [2013-04-23T22:29:15.717387 #2] INFO -- : listening on addr=0.0.0.0:25281 fd=7
2013-04-23T22:29:15.717916+00:00 app[web.1]: I, [2013-04-23T22:29:15.717861 #2] INFO -- : worker=0 spawning...
2013-04-23T22:29:15.721526+00:00 app[web.1]: I, [2013-04-23T22:29:15.721385 #2] INFO -- : master process ready
2013-04-23T22:29:15.723623+00:00 app[web.1]: I, [2013-04-23T22:29:15.723389 #5] INFO -- : worker=0 spawned pid=5
2013-04-23T22:29:15.723805+00:00 app[web.1]: I, [2013-04-23T22:29:15.723750 #5] INFO -- : Refreshing Gem list
2013-04-23T22:29:16.305653+00:00 heroku[web.1]: State changed from starting to up
2013-04-23T22:29:16.891063+00:00 app[web.1]: I, [2013-04-23T22:29:16.890882 #5] INFO -- : worker=0 ready
Sau đó, Tôi đã cố gắng tải trang chủ trong trình duyệt của mình và đây chỉ là hai dòng phụ xuất hiện trong nhật ký:
2013-04-23T22:29:26.685651+00:00 heroku[router]: at=info method=GET path=/ host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=2ms service=156ms status=500 bytes=706
2013-04-23T22:29:26.973073+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=blofs.herokuapp.com fwd="46.65.16.44" dyno=web.1 connect=1ms service=5ms status=200 bytes=0
Có ai có ý kiến gì về vấn đề này không?
Những điều khác mà có thể có liên quan:
- tôi đã vô hiệu hóa các tiêu chuẩn Heroku Postgres addon và đang sử dụng các addon ClearDB MySQL để thay thế.
- Tôi đã thử thay đổi biến môi trường
DATABASE_URL
theo cách thủ công từ giá trị trước đó (vẫn là URL postgres ngay cả sau khi tôi đã xóa phần bổ trợ postgres) với cùng giá trị với sốCLEARDB_DATABASE_URL
var (mysql one). Điều này dường như không tạo ra bất kỳ sự khác biệt nào. - Tôi đã thêm
ruby '2.0.0'
vào Gemfile của tôi và thêmmysql2
vàunicorn
đá quý. Và tôi đã sử dụngconfig/unicorn.rb
đề nghị tại https://devcenter.heroku.com/articles/rails-unicorn - My Procfile chỉ chứa:
web: bundle exec unicorn -p $PORT -E $RACK_ENV
- Nó hoạt động tốt tại địa phương với
foreman start
. - Khác với các sửa đổi được mô tả ở trên, về cơ bản nó là một ứng dụng ngoài hộp được tạo với
rails new
.
Dường như bạn không có 4 đường đá quý. Xem https://devcenter.heroku.com/articles/rails4 –