URI::InvalidURIError (Ruby ver: 1.9.3, Rails: 3.2.15)



当我尝试通过rails new new_project生成Rails应用程序时,我收到此错误:

  create  
  create  README.rdoc
  create  Rakefile
  create  config.ru
  create  .gitignore
  create  Gemfile
  create  app
  ........
  ........
  create  vendor/assets/stylesheets
  create  vendor/assets/stylesheets/.gitkeep
  create  vendor/plugins
  create  vendor/plugins/.gitkeep

  run  bundle install
  /home/manish/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/uri/generic.rb:213:
  in ` 'initialize': the scheme http does not accept registry 
  part:manish:password@my_company.com:port_no; (or bad hostname?) (URI::InvalidURIError)

为了向此错误添加更多内容,当我也运行gem install ruby-debug时也会出现。

Gemfile

source 'https://rubygems.org'
ruby '1.9.3'
gem 'rails', '3.2.15'    
gem 'sqlite3'
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'    
gem 'jquery-rails'

有人可以解释我这个错误是什么,我怎样才能摆脱这个错误?

这可能是由于源中的https=>Gemfile中的"https://rubygems.org"。你有没有试过:-

source 'http://rubygems.org'

我遇到了类似的问题,结果证明是Ruby本身的问题:

这个问题与 Ruby 本身的 uri 组件有关,它 尝试匹配 URI 的用户信息部分

我在密码 (#) 中有一个非标准字符,URI 正则表达式无法正确处理。所以我修复了/usr/lib/ruby/1.8/uri/common.rb

   -USERINFO = "(?:[#{UNRESERVED};:&=+$,]|#{ESCAPED})*"
   +USERINFO = "(?:[#{UNRESERVED};:&=+$,#]|#{ESCAPED})*"

它奏效了。请注意,要支持 DOMAIN 反斜杠,它应该是:

  USERINFO = "(?:[#{UNRESERVED};:&=+$,#\\]|#{ESCAPED})*"

据此。您可以在与 find 一起使用的所有 ruby 安装中找到此 uri/common.rb 文件(例如,如果您使用 rvm,它将类似于 .rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/common.rb

相关内容

  • 没有找到相关文章

最新更新