Middleman環境で、動的にsitemap.xmlを動的に生成する方法です。
特に、gem等は利用せずに、erbファイルから生成する方法になります。
SEO的にも最低限 サイトマップは用意しておくべきだと思います。
以下がその手順になります。
sitemap.xml.erbの生成
source/sitemap.xml.erbを下記のように作成します。
<% pages = sitemap.resources.find_all{|p| p.source_file.match(/\.html/) } %>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
pages.each do |p|
<url>
<loc>http://www.example.com/<%= p.destination_path.gsub('/index.html','') %></loc>
<priority>0.5</priority>
</url>
<% end %>
</urlset>
上記の場合、build時に生成される、htmlファイルにたいして、priorityを全て0.5を設定するようになっています。
必要があれば、pages.each do |p| の ループの中でディレクトリ名を見ながら、
以下の値を変更していってください。
<lastmod> 最終更新日
<changefreq> 更新頻度
<priority> 優先順位
sitemapのタグの定義方法に関しては、Goolge - サイトマップを作成する を参考ください。
config.rbへの設定追加
config.rbに以下を追加します。
page "/sitemap.xml", :layout => false
上記で、生成した、source/sitemap.xml.erbを元に、/sitemap.xml を生成してくれます。
ためしに、以下にアクセスして、saitemapが取得できれば成功です。
http://localhost:4567/sitemap.xml
まとめ
比較的簡単に、saitemapの生成が可能です。
細かく設定していこうとすると大変かもしれませんが、必要最低限のサイトマップの生成はできると思います。
参考サイト
http://benfrain.com/understanding-middleman-the-static-site-generator-for-faster-prototyping/
0 件のコメント:
コメントを投稿