Action Dispatch PublicExceptions
当调用时,此中间件会渲染一个错误页面。默认情况下,如果预期返回 HTML 响应,它将渲染来自 /public
目录的静态错误页面。例如,当此中间件收到 500 响应时,它将渲染 /public/500.html
中找到的模板。如果设置了国际化语言环境,此中间件将尝试渲染 /public/500.<语言环境>.html
中的模板。如果没有找到国际化模板,它将回退到 /public/500.html
。
当发出内容类型不为 HTML 的请求时,此中间件将尝试将错误信息转换为相应的响应类型。
方法
属性
[RW] | public_path |
类公共方法
new(public_path) 链接
源代码:显示 | 在 GitHub 上查看
# File actionpack/lib/action_dispatch/middleware/public_exceptions.rb, line 21 def initialize(public_path) @public_path = public_path end
实例公共方法
call(env) 链接
源代码:显示 | 在 GitHub 上查看
# File actionpack/lib/action_dispatch/middleware/public_exceptions.rb, line 25 def call(env) request = ActionDispatch::Request.new(env) status = request.path_info[1..-1].to_i begin content_type = request.formats.first rescue ActionDispatch::Http::MimeNegotiation::InvalidType content_type = Mime[:text] end body = { status: status, error: Rack::Utils::HTTP_STATUS_CODES.fetch(status, Rack::Utils::HTTP_STATUS_CODES[500]) } render(status, content_type, body) end