目前正在生产中,我收到以下文字:
500 Internal Server Error
If you are the administrator of this website, then please read this web application's
log file and/or the web server's log file to find out what went wrong.
该页面上没有任何 HTML。此代码位于何处?我没有 public/500.html 文件。在我的 route ,我有:
get "/404", :to => "errors#error_404"
get "/422", :to => "errors#error_404"
get "/500", :to => "errors#error_500"
get "/505", :to => "errors#error_505"
错误 Controller :class ErrorsController < ApplicationController
def sub_layout
"left"
end
def error_404
render :status => 404, :formats => [:html], :layout => "white", :sub_layout => "left"
end
def error_422
render :status => 422, :formats => [:html], :layout => "white", :sub_layout => "left"
end
def error_500
render :status => 500, :formats => [:html], :layout => "white", :sub_layout => "left"
end
def error_505
render :status => 505, :formats => [:html], :layout => "white", :sub_layout => "left"
end
end
如何让它始终加载我的自定义错误?对于某些错误,它只会抛出来自 Ruby on Rails 核心某处的这两行文本。我希望它每次都能拾取我的自定义样式错误页面!
最佳答案
您遇到的错误是从
https://github.com/rails/rails/blob/4-0-stable/actionpack/lib/action_dispatch/middleware/show_exceptions.rb#L18-L22
这意味着您的异常被拯救的代码本身就是抛出异常。
您可以检查日志中的文本:Error during failsafe response:
确定异常的真正来源,从而解决您的问题。
关于error-handling - 404、500 的自定义错误页面,但默认的 500 错误消息来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19103759/