我们在 routes.rb 中为 404s 使用以下包罗万象的路由:
# Catches all 404 errors and redirects
match '*url' => 'default#error_404'
但这会在下面生成 500 内部服务器错误,因为我们没有专门在error_404中捕获 PNG 格式。
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"
理想情况下,所有未知请求都会呈现default#error_404 HTML动作。我们不知道如何获取format.any来呈现 404 HTML 动作。如何使用错误 404 HTML 响应呈现所有未知请求?