Railsでサイトマップを作成し自動更新・通知をするのは、とっても簡単に出来ます。
sitemap_generatorのインストール
gem 'sitemap_generator'
で、bundle installを実施。
wheneverのインストール
gem 'whenever', require: false
でこちらもbundle install実施(上と同時でOK)
sitemap_generatorの設定
設定用にまずは下記コマンドをコマンドラインで実施。
rake sitemap:install
これで、config/sitemap.rbという設定用ファイルが生成されました。デフォルトは下記設定です。
# Set the host name for URL creation SitemapGenerator::Sitemap.default_host = "http://www.example.com" SitemapGenerator::Sitemap.create do # Put links creation logic here. # # The root path '/' and sitemap index file are added automatically for you. # Links are added to the Sitemap in the order they are specified. # # Usage: add(path, options={}) # (default options are used if you don't specify) # # Defaults: :priority => 0.5, :changefreq => 'weekly', # :lastmod => Time.now, :host => default_host # # Examples: # # Add '/articles' # # add articles_path, :priority => 0.7, :changefreq => 'daily' # # Add all articles: # # Article.find_each do |article| # add article_path(article), :lastmod => article.updated_at # end end
この設定をアレンジして、自身のサイトマップ用に調整します。このサンプルにも書き方がかいてあるので参考になるかとは思います。rootパスは自動的に追加される模様。
SitemapGenerator::Sitemap.default_host = "https://hogehoge.com/" SitemapGenerator::Sitemap.compress = false SitemapGenerator::Sitemap.create do add '/about', :priority => 0.9, :changefreq => 'weekly' add articles_path, :priority => 0.9, :changefreq => 'daily' Article.find_each do |article| add article_path(article), :priority => 0.7, :changefreq => 'daily' end end
これでOK。私はネット上からそのまま確認したかったので、compressオプションをfalseにしています。これはtrueにしておけば、容量を圧迫しないのでそちらでもGOODです。
whenever設定
自動的に更新&通知するようにします。
every 1.day, :at => '5:30 am' do rake 'sitemap:refresh' end
上記設定は、毎日朝5:30に更新&通知をするという設定です。
コメント