404 には、routes.rb で次のキャッチオール ルートを使用します。
# Catches all 404 errors and redirects
match '*url' => 'default#error_404'
ただし、 error_404で特に PNG 形式をキャッチしないため、これにより以下の 500 内部サーバー エラーが生成されます。
Started GET "/images/doesnotexistyo.png" for 71.198.44.101 at 2013-03-08 07:59:24 +0300
Processing by DefaultController#error_404 as PNG
Parameters: {"url"=>"images/doesnotexistyo"}
Completed 500 Internal Server Error in 1ms
ActionView::MissingTemplate (Missing template default/error_404, application/error_404 with {:locale=>[:en], :formats=>[:png], :handlers=>[:erb, :builder]}. Searched in:
* "/home/prod/Prod/app/views"
理想的には、不明なリクエストはすべてデフォルトの#error_404 HTMLアクションをレンダリングします。format.anyを取得して 404 HTML アクションをレンダリングする方法がわかりません。エラー 404 HTML 応答ですべての不明な要求をレンダリングするにはどうすればよいですか?