0

我正在尝试为我的应用程序创建一个站点地图,该站点地图使用sitemap_generator gem 具有子域。 但是,我的代码出现错误:

the scheme http does not accept registry part: .foo.com (or bad hostname?)

我的站点地图.rb:

SitemapGenerator::Sitemap.default_host = "http://www.foo.com"
SitemapGenerator::Sitemap.sitemaps_host = "http://s3.amazonaws.com/foo/"
SitemapGenerator::Sitemap.public_path = 'tmp/'
SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/'
SitemapGenerator::Sitemap.adapter = SitemapGenerator::WaveAdapter.new

SitemapGenerator::Sitemap.create do
  add '/home' 
end

Customer.find_each do |customer|
  SitemapGenerator::Sitemap.default_host = "http://#{customer.user_name}.foo.com"
  SitemapGenerator::Sitemap.sitemaps_path = "sitemaps/#{customer.user_name}"
  SitemapGenerator::Sitemap.create do
    add '/home'
  end  
end

我究竟做错了什么?

4

1 回答 1

2

我是这颗宝石的作者。

我相当确定问题在于其中一个客户用户名包含 URL 中不允许的字符。一个简单名称的简单测试可以工作,例如:

%w(bill mary bob).each do |customer|
  SitemapGenerator::Sitemap.default_host = "http://#{customer}.foo.com"
  SitemapGenerator::Sitemap.sitemaps_path = "sitemaps/#{customer}"
  SitemapGenerator::Sitemap.create do
    add '/home'
  end  
end
于 2013-05-02T22:49:42.460 回答