gpt4 book ai didi

ruby-on-rails - 尝试访问损坏的图片 url 时抛出内部服务器错误 500 而不是 404

转载 作者:行者123 更新时间:2023-12-04 02:00:14 26 4
gpt4 key购买 nike

我们有一个使用本教程设置自定义 404 和 500 页的 rails 服务器:

http://ramblinglabs.com/blog/2012/01/rails-3-1-adding-custom-404-and-500-error-pages

虽然它运行良好并为各种路径抛出 404,但在尝试访问任何类型的后缀路径时会生成内部服务器错误 500,例如 en/foo.png、en/foo.pdf、en/foo.xml、...

但是像 en/file.foo 这样的东西会抛出 404。所以只有有效的后缀才会抛出 500。

路由结束.rb:

if Rails.application.config.consider_all_requests_local
match '*not_found', to: 'errors#error_404'
end

application_controller.rb
  unless Rails.application.config.consider_all_requests_local
rescue_from Exception, with: :render_500
rescue_from ActionController::RoutingError, with: :render_404
rescue_from ActionController::UnknownController, with: :render_404
rescue_from ::AbstractController::ActionNotFound, with: :render_404
rescue_from ActiveRecord::RecordNotFound, with: :render_404
end

protected

def render_404(exception)
@not_found_path = exception.message
respond_to do |format|
format.html { render template: 'errors/error_404', layout: 'layouts/application', status: 404 }
format.all { render nothing: true, status: 404 }
end
end

def render_500(exception)
logger.fatal(exception)
respond_to do |format|
format.html { render template: 'errors/error_500', layout: 'layouts/application', status: 500 }
format.all { render nothing: true, status: 500}
end
end

500 出现:
Missing template errors/error_404 with {:locale=>[:de, :en], :formats=>[:png], :handlers=>[:erb, :builder, :coffee, :arb, :haml]}

最佳答案

我们发现了错误。

我们有一个 error_controller.rb 包含这个:

  def error_404
@not_found_path = params[:not_found]
render template: 'errors/error_404', layout: 'layouts/application', status: 404
end

我们将其更改为解决此问题:
  def error_404
@not_found_path = params[:not_found]
respond_to do |format|
format.html { render template: 'errors/error_404', layout: 'layouts/application', status: 404 }
format.all { render nothing: true, status: 404 }
end
end

关于ruby-on-rails - 尝试访问损坏的图片 url 时抛出内部服务器错误 500 而不是 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10280692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com