Construtor de Sitemap para aplicativo Rails

Como você sabe, o mapa do site é um dos elementos importantes do site. Esta é a maneira fácil de gerar sitemap.xml usando aplicativo / site baseado em Rails:

# Gemfile
gem
'big_sitemap'

# lib/tasks/sitemap.rake
require 'big_sitemap'

namespace :custom do
desc
"Generate sitemap"
task
:sitemap => :environment do
include
Rails.application.routes.url_helpers

sitemap_options
= {
document_root
: Rails.root.join('public'),
url_options
: { host: 'example.com' },
ping_google
: true,
ping_bing
: true,
gzip
: true
}

if Rails.env.development?
sitemap_options
= {
document_root
: Rails.root.join('public'),
url_options
: { host: 'localhost', port: 3000 },
ping_google
: false,
ping_bing
: false,
gzip
: false
}
end

BigSitemap.generate(sitemap_options) do
add root_path, change_frequency: 'daily', priority: 1.0

Stuff.all.each do |stuff|
add stuff_path(stuff), change_frequency: 'daily', priority: 0.5
end
end
end
end

Então podemos gerar usando o comando:

rake custom:sitemap

A integração do Capistrano é bastante útil para gerar o mapa do site e executar ping nos mecanismos de pesquisa automaticamente durante a implantação.

# config/deploy.rb
namespace :deploy do
desc
"Generate sitemap"
task
:sitemap do
run
"cd '#{current_path}' && #{rake} custom:sitemap RAILS_ENV=#{rails_env}"
end
end

after
'deploy:update', 'deploy:sitemap'