2017-02-15 8 views
0

this postに従って、私のレールアプリケーションにエラーページをレンダリングしたいが、それをHerokuで動作するように変更したい。Rails + Herokuのカスタムエラーページ

ポストスタック:Rails + Nginx + Capistrano。
私のスタック:Rails + Heroku。

my-app.herokuapp.com/assets/XXX.html URLは機能していますが、私は私がHerokuので動作するように、ポストから取った次のコードを変更する必要があると思うmy-app.herokuapp.com/XXX.html

をレンダリングする必要があります!

root /myapp/current/public; 
error_page 404 /404.html; 
location /404.html { 
    internal; 
    root /myapp/current/public/assets; 
} 

答えて

0

Herokuのは、次のされているオリジナルのポストに完全に異なっている:

他のすべてのエラー、あなたのアプリがあなたの中に/publicディレクトリにあるhtmlファイルから404、422および500を提供するために起こっていますデフォルトではアプリですあなたは、エラーが発生したときにサーバーにしたい静的なページを指す環境変数を設定する必要が503エラーの場合

heroku config:set ERROR_PAGE_URL=//s3.amazonaws.com/<your_bucket>/your_error_page.html 

は、他のカスタマイズのためのhttps://devcenter.heroku.com/articles/error-pages#configure-your-applicationを参照してください。

+0

ありがとうございます。しかし、herokuのカスタムエラーページは、レールアプリケーションで例外が発生するたびに表示されません。 herokuでエラーが発生すると、エラーページが表示されます。私は私のレールアプリのエラーを処理したい。 – edudepetris

+0

正しいですが、404、422、および500エラーのエラーメッセージをカスタマイズする方法も含めて回答を更新しました。 – Leito

0

私は数日前にその機能をやった、と私は最も明確かつ有用なhttps://thepugautomatic.com/2014/08/404-with-rails-4/

その記事を見つけました。しかし、あなたが500エラーや他を扱うたい場合は、ルートにと「CustomPublicExceptions」で1つの以上の文字列を追加する必要があります条件に条件を追加してください

+0

解決策が見つからない場合は、私はこれにチャンスを与えます。 しかし、私の考えは、アプリケーションがクラッシュした場合にエラーをレンダリングするためにRailsのもの(コントローラ)を使用していません – edudepetris