2017-04-17 5 views
0

これは私が遭遇した本当に奇妙なエラーです。私はレールにルビーを使用しています。すべてがローカルでうまく動作します(クラウド9)。それを正常にHerokuにプッシュしました。 db:migrateをエラーなしで実行しました。それでも、「探していたページは存在しません」というエラーが表示され、ログに404と表示されます。ファイルをチェックして正しくアップロードされました。 私のルート:Ruby on RailsのWebサイトがローカルで動作し、正しいルートがありますが、heroku get 404

root 'application#index' 
    get '/index/:type' => 'application#index' 
    get '/index/' => 'application#index' 
    get '/benchmark/' => 'application#benchmark' 
    get '/benchmark/:type' => 'application#benchmark' 
    get '/benchmarkupdate/:name' => 'application#benchmark' 
    get '/indexupdate/:name' => 'application#index' 

私は正しい場所にファイルを持っています。私はルーティングに何の問題もなく、ローカルで働いています。

Herokuのログ:

2017-04-18T03:13:14.455398+00:00 app[web.1]: * Version 3.8.2 (ruby 2.3.4-p301), codename: Sassy Salamander 
2017-04-18T03:13:14.455399+00:00 app[web.1]: * Min threads: 5, max threads: 5 
2017-04-18T03:13:14.455399+00:00 app[web.1]: * Environment: production 
2017-04-18T03:13:15.493228+00:00 app[web.1]: DEPRECATION WARNING: `config.serve_static_files` is deprecated and will be removed in Rails 5.1. 
2017-04-18T03:13:15.493241+00:00 app[web.1]: Please use `config.public_file_server.enabled = true` instead. 
2017-04-18T03:13:15.493243+00:00 app[web.1]: (called from block in <top (required)> at /app/config/environments/production.rb:25) 
2017-04-18T03:13:16.337785+00:00 app[web.1]: * Listening on tcp://0.0.0.0:49146 
2017-04-18T03:13:16.337997+00:00 app[web.1]: Use Ctrl-C to stop 
2017-04-18T03:13:16.847301+00:00 heroku[web.1]: State changed from starting to up 
2017-04-18T03:13:18.094441+00:00 heroku[router]: at=info method=GET path="/" host=protected-coast-54392.herokuapp.com request_id=3d8c7a3f-3f40-4747-862f-7e70e7c9029e fwd="152.3.34.25" dyno=web.1 connect=1ms service=75ms status=404 bytes=1744 protocol=https 

は、この問題を引き起こす可能性があります何か他のものはありますか?

+0

ようこそstackoverflow、関連するコードを追加し、テキストとして質問自体にログを記録してください。スクリーンショットではありません。ツールバーにはテキストをコードとしてフォーマットする '{}'ボタンがあります。 – max

+0

@XlsaaxスタックトレースやHerokuログに役立つものは何も表示されません。 WEBrickエラーのようなスタックトレースはありますか? –

答えて

1

問題は、ルートルートに行く後に誰かがwww.example.comに行くときにルートなしのルートを設定していないということです。あなたのルートファイルで

root 'application#index' 

または何コントローラとアクション、あなたは、人々は、彼らが最初にあなたのサイトを訪問したときに行きたい対応するビューのようなものを追加します。

+0

私のルートファイルで、私はすでにrootの 'application#index'を持っていましたが、ウェブサイトはまだ動作していません。私は/ベンチマーク、/ indexupdate(私のルートにある)も役に立たなかった。ルートに間違いがありますが、実際には何も見つからず、ローカルで作業していると思います。 – XIsaax

+0

ログに基づいてルートルートが不足しているため、404エラーが発生しました。しかし、他の問題があるかもしれません。プーマの宝石を入れてみてください。 Webrickは、プロダクションでの使用を意図したものではありません。 –

0

まあ、あるものの、生産上WEBrickを実行してはいけません。これはあなたのエラーの原因になっている場合私は肯定的ではないが、私はそこから始めたい。

ヘロクは現在pumaをお勧めします。

Gemfileには、gem 'puma'と入力してからbundle installを実行することで、pumaをインストールできます。

プロジェクトディレクトリには、Webサーバーの実行方法をアプリに指示するProcfileを含める必要があります。

Procfileが正しく大文字で入力され、gitにチェックインされていることを確認してください。

それは次のようなものになります。

# <Rails.root>/Procfile 
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development} 

ここWEBrickhow to set up pumaの1程度の記事だが。

あなたはherokuに再度プッシュする必要があります。それが役立つかどうかを見てください。乾杯。

+0

@SteveCareyはあなたの得意なエラーに基づいていますが、生産上WEBrickを間違いなく交換しなければならないので、私は答えを残しておきます! :-) –

+0

こんにちは、私はプーマに交換しましたが、私はまだ同じエラーに遭遇します。ルートファイル(正しい)が何らかの形でサーバーによって使用またはロードされていない可能性があるので、サーバーはルートを認識しないため、エラーが発生しますか?しかし、それはどのように可能ですか? – XIsaax

+0

Pumaの障害からログを投稿できますか? –

関連する問題