Il peut être intéressant de générer des sitemaps dans le cas où toutes les pages ne sont pas linkée (comprendre qu'elles n'ont pas de lien).
Le gem sitemap generator permet de faire cela. Il faut créer un fichier sitemap.rb dans config. Ce fichier a connaissance de l'environnement de rails (vous avez accès aux models).
Voici l'allure du fichier sitemap.rb (c'est un exemple avec le model Page) :
require 'rubygems' require 'sitemap_generator' SitemapGenerator::Sitemap.default_host = 'https://www.example.com' SitemapGenerator::Sitemap.filename = 'mon_sitemap' SitemapGenerator::Sitemap.create do Page.all.each{ |page| add "/#{page.id}", :changefreq => 'monthly', :priority => 0.4, :lastmod => page.updated_at } add "/une_autre_page_statique", :changefreq => 'daily', :priority => 0.7, :lastmod => 1.days.ago end
Dans votre deploy.rb vous pouvez mettre ceci dans un before "deploy:create_symlink" do ... end
#sitemap run "cd #{release_path} && RAILS_ENV=production rake sitemap:clean" run "cd #{release_path} && RAILS_ENV=production rake sitemap:create" # Optionnel permet de décompresser le gz #run "cd #{release_path}/public && gzip -d *.xml.gz"
Il faut aussi mettre ceci dans le Gemfile :
gem 'sitemap_generator'