ねえ、私があなたを助けてくれることを願っています。rails3で404/500のようなエラーを処理する方法
私のパブリックフォルダ内のデフォルトのエラーページ404.htmlと500.htmlにユーザーを誘導する方法を探しています。
ルーティングや名義エラーがある場合は、そこで指示する必要があります。 私は既にアプリケーションコントローラでいくつかのものを試しましたが、動作しませんでした。
多くの感謝!
ねえ、私があなたを助けてくれることを願っています。rails3で404/500のようなエラーを処理する方法
私のパブリックフォルダ内のデフォルトのエラーページ404.htmlと500.htmlにユーザーを誘導する方法を探しています。
ルーティングや名義エラーがある場合は、そこで指示する必要があります。 私は既にアプリケーションコントローラでいくつかのものを試しましたが、動作しませんでした。
多くの感謝!
Railsは本番モードで実行しているときにこれを自動的に行います。アプリケーションをライブサーバーにアップロードすると、Railsはその例外を処理し、正しいヘッダー状態の正しいエラーページを表示します。これらのページがどのように見えるかを試してみたい場合は、http://localhost:3000/404.html
ライブサーバーにRailsアプリケーションを設定すると(Apacheを例として使用します)、アプリケーションの/public
フォルダとしてサイトルートを指定します。その後、そのサーバーアドレスへのリクエストが行われると、Apacheはまずパブリックフォルダを探し、静的資産を提供しようとします(これは[environment].rb
の設定可能なオプションです)。要求されたページが見つからない場合、リクエストはRubyスタックを介して転送されます。
Railsが処理されない(つまり、開始する、レスキューする)エラーに遭遇した場合、スタック全体にエラーがスローされ、Apacheに(この例でも)適切なエラーを表示します。手動でそれを行う必要はありません - プロダクションモードで実行する場合
ActiveRecord::RecordNotFound => 404 (page not found)
nil.method => 500 (server error) unless you turn off whiny nils
ActionController::RoutingError => 404 (page not found)
が自動的に行われます:
は、ここでは、開発モードと彼らが生産モードでレンダリングで表示されますいくつかの一般的なエラーです。
this postを見て、ルーティングエラーの原因となったすべてのリクエストをリダイレクトしてください。
私は404.htmと500.htmをパブリックフォルダに入れてもOKだと思った。確信はないけど。 – PeterWong
私はデフォルトでそこにそれらを持っています。しかし、エラーが発生した場合は表示されません – daniel