- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们的 Rails 应用程序有时会收到一个完全乱码的 URL,导致 Rack 引发 URI::InvalidURIError
。我们的异常通知系统 (HoneyBadger) 然后会收到此错误的通知。
但是,我不想知道这些错误:我更希望 Rack 只记录它们(如果可能)并吞下它们。
应用在 routes.rb
中处理 ActionController::RoutingError
:
# Default route, because these would normally not go through the application rescue_from block
match('*path', to: 'application#routing_error') unless Rails.env.development?
... 然后在 ApplicationController#routing_error
中发生路由错误时记录(但不通知)。
但是,这个无效的 URI 错误发生在路由看到 URL 之前。
这是导致问题的示例 URL(当然,域名已更改)- http://www.whatever.com/HD2EU]<
。以及随之而来的堆栈跟踪:
[PROJECT_ROOT]/vendor/ruby-1.9.3/lib/ruby/1.9.1/uri/common.rb:176:in `split`
[PROJECT_ROOT]/vendor/ruby-1.9.3/lib/ruby/1.9.1/uri/common.rb:211:in `parse`
[PROJECT_ROOT]/vendor/ruby-1.9.3/lib/ruby/1.9.1/uri/common.rb:747:in `parse`
[PROJECT_ROOT]/vendor/ruby-1.9.3/lib/ruby/1.9.1/uri/common.rb:994:in `URI`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/rack-ssl-1.3.3/lib/rack/ssl.rb:50:in `redirect_to_https`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/rack-ssl-1.3.3/lib/rack/ssl.rb:32:in `call`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:245:in `fetch`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/engine.rb:479:in `call`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/application.rb:223:in `call`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/railtie/configurable.rb:30:in `method_missing`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:552:in `process_client`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:632:in `worker_loop`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.6.5.130/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb:22:in `call`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.6.5.130/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb:22:in `block (4 levels) in <top (required)>`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:500:in `spawn_missing_workers`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:142:in `start`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/gems/unicorn-4.6.3/bin/unicorn:126:in `<top (required)>`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/bin/unicorn:23:in `load`
[PROJECT_ROOT]/vendor/bundle/ruby/1.9.1/bin/unicorn:23:in `<main>`
最佳答案
我只是将它添加到 honeybadger.rb 初始值设定项中:
config.ignore << URI::InvalidURIError
关于ruby-on-rails - 在 Rails 环境中由 Rack 引发时如何拯救 URI::InvalidURIError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713529/
我在我的工作站/本地机器上运行“chef verify”并得到这个错误结果。 mike@mike-pc:/opt/chefdk$ chef verify Running verification f
Rails、Devise 和 Doorkeeper... 尝试测试密码授予并收到错误:URI::InvalidURIError: query conflicts with opaque有任何想法吗?
在我的 routes.rb 我有以下路线: get '/merchandises/:cat/:id' => redirect('/products/%{id}') 这个重定向工作,但如果参数 id 包
我有一个用于测试目的的程序,我正在做的是抓取网络上的开放代理,并记录它们的信息,但是这是一种非常不同类型的代理抓取器,因为它创建了一堆在执行之前在文件内部之前的随机代理的数量例如: def creat
我遵循了 HTTParty github page 中的示例并想出了这个: class MatchHistory include HTTParty base_uri = "api.st
我目前正在尝试下载此链接的图片: http://z.mfcdn.net/store/manga/9/14-116.0/compressed/Bleach-14-116[manga-rain]._man
require 'uri' uri = URI.parse 'http://dxczjjuegupb.cloudfront.net/wp-content/uploads/2017/10/Оуэн-Мэ
我正在尝试验证一个 URL,但我的 URI.parse 正在接受任何字符串而不会引发 URI::InvalidURIError 错误。我做错了什么吗? require 'uri' URI.parse(
我有一个遗留的 Rails 3.2 应用程序,当我尝试使用非 ascii 字符时,例如; example.com/city/bergstraße 然后我收到以下错误: /Users/user/.rvm
我从delayed_job那里得到了以下信息: [Worker(XXXXXX pid:3720)] Class#XXXXXXX failed with URI::InvalidURIError: ba
在本地计算机上安装 Gitlab (10.6.2) 和 Jenkins,并尝试通过 gitlab 的 webhook 自动构建,根据 https://github.com/jenkinsci/gitl
使用 ruby 1.9.2-p290。我在尝试解析如下 URI 时遇到问题: require 'uri' my_uri = "http://www.anyserver.com/getdata?anyp
我的一些网址上有一些特殊字符。例如: http://blabla.com/title/?t=burası 当我从其他页面提供指向该页面的链接时,我使用: URI.encode(s) 产生这个链接: /
我们的 Rails 应用程序有时会收到一个完全乱码的 URL,导致 Rack 引发 URI::InvalidURIError。我们的异常通知系统 (HoneyBadger) 然后会收到此错误的通知。
我的Gemfile中有gem 'rspec-rails', '~> 2.14.2'。 从Rails 4.1升级到Rails 4.2之后,运行rspec时出现以下错误: Failure/Error: g
我正在尝试在 Rails 3 中实现 OAuth 提供程序。当我尝试授权客户端应用程序时,出现此错误。我正在使用 RESTful auth 插件和 pelles OAuth 插件。当我通过 Rails
我刚刚在一个长期存在的域上启动了一个生产 Rails 应用程序(在 Heroku 上),当然,现在它面向广泛开放的网络,我正在收集所有尝试脚本小子的碎片。 我有任何异常通过电子邮件发送给我,我已经设法
我知道这是一个常见的错误,我正在使用一个已知的解决方案,但它仍然给我同样的错误: require 'open-uri' url = "http://website.com/dirs/filex[a]"
配置信息 rails version 6.0 ruby version 2.7.0 gem 'image_processing', '~> 1.2' storage.yml local: serv
我正在使用 Koala gem:https://github.com/arsduo/koala从 facebook 图形 API 检索结果页面。 [编辑] 我按如下方式构造@graph 对象: @fa
我是一名优秀的程序员,十分优秀!