Rails / Sitemap_Generator:子域站点地图

时间:2013-02-01 03:30:12

标签: ruby-on-rails-3 sitemap

我正在尝试使用sitemap_generator gem.为我的应用创建一个包含子域名的站点地图但是,我的代码出错:

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

我的sitemap.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

我做错了什么?

1 个答案:

答案 0 :(得分: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