首页
/ 大型网站地图生成器技术文档

大型网站地图生成器技术文档

2024-12-23 20:34:19作者:咎竹峻Karen

1. 安装指南

首先,您需要通过gem安装BigSitemap。在命令行中输入以下命令:

sudo gem install big_sitemap

确保您的系统中已安装Ruby和gem。

2. 项目的使用说明

BigSitemap适合拥有超过50,000个URL的应用程序。它可以:

  • 将大型网站地图分割成多个文件
  • 压缩文件以减少带宽使用
  • 支持增量更新
  • 仅需几行代码即可设置
  • 兼容几乎所有框架

最佳实践是定期通过Rake/Thor任务运行BigSitemap。

以下是一个使用BigSitemap的基本示例:

require 'big_sitemap'

include Rails.application.routes.url_helpers # 允许访问Rails路由

BigSitemap.generate(:url_options => {:host => 'example.com'}, :document_root => "#{APP_ROOT}/public") do
  # 添加一个静态页面
  add '/about'

  # 从Rails应用程序添加一些URL
  Post.find(:all).each do |post|
    add post_path(post)
  end

  # 添加一些具有附加选项的URL
  Product.find(:all).each do |product|
    add product_path(product), :change_frequency => 'daily', :priority => 0.5
  end
end

上述代码将创建至少两个文件:

  1. public/sitemap_index.xml.gz
  2. public/sitemap.xml.gz

在版本1.0.0之前,文件默认存储在public/sitemaps目录中。如果您想将它们存储在sitemaps目录中,您需要指定document_path选项:

BigSitemap.generate(
  :url_options => {:host => 'example.com'}, 
  :document_root => "#{APP_ROOT}/public/", 
  :document_path => "sitemaps"
) do
  ...
end

如果您的网站地图超过50,000个URL(此限制可以通过:max_per_sitemap选项覆盖),网站地图文件将被分割成多个文件(如sitemap_1.xml.gzsitemap_2.xml.gz等)。

3. 项目API使用文档

以下是BigSitemap的一些初始化选项:

  • :url_options -- 包含:host,可选的:port:scheme的哈希表
  • :base_url -- 字符串,是:url_options的替代,例如'https://example.com:8080/'
  • :url_path -- sitemaps文件夹的字符串路径名,默认为:document_path
  • :document_root -- 字符串
  • :document_path -- 相对于:document_root的字符串文档路径,默认为空字符串(将sitemap文件放在文档根目录中)
  • :document_full -- 生成文件夹的绝对文档路径,默认为:document_root/:document_path
  • :max_per_sitemap -- 默认为50000,这是Google规定的限制,但可以更小
  • :gzip -- 默认为true
  • :ping_google -- 默认为true
  • :ping_yahoo -- 默认为false,需要:yahoo_app_id
  • :ping_bing -- 默认为false
  • :ping_ask -- 默认为false
  • :ping_yandex -- 默认为false
  • :partial_update -- 默认为false

您可以为每个记录单独控制“changefreq”、“priority”和“lastmod”值,通过在添加URL时传递可选参数:

add(product_path(product), {
  :change_frequency => 'daily',
  :priority         => 0.5,
  :last_modified    => product.updated_at
})

如果启用:partial_update,文件名将包括第一个条目的ID。这对于仅更新最后一个文件中的新条目而不重新生成已有文件非常有用。添加URL时,您必须传递条目的ID。例如:

BigSitemap.generate(:base_url => 'http://example.com', :partial_update => true) do
  Widget.find_in_batches(:conditions => "id > #{get_last_id}").each do |widget|
    add widget_path(widget), :id => widget.id
  end
end

4. 项目安装方式

请参考上述“安装指南”部分中的步骤来安装BigSitemap。通过gem安装是最简单和推荐的方式。

登录后查看全文
热门项目推荐