Существует ли простой способ создать файл карт сайта для проектов направляющих? Специально для динамических сайтов (таких как Переполнение стека, например) должен быть способ динамично создать файл карт сайта. Что путь состоит в том, чтобы войти в Ruby и/или направляющие?
Что Вы предложили бы? Есть ли там какой-либо хороший драгоценный камень?
Добавьте этот маршрут к нижней части вашего CONFIG / BURTS.RB
файл (более конкретные маршруты должны быть перечислены выше):
map.sitemap '/sitemap.xml', :controller => 'sitemap'
Создать SitemapController
(App / Controllers / Sitemap_Controller):
class SitemapController < ApplicationController
layout nil
def index
headers['Content-Type'] = 'application/xml'
last_post = Post.last
if stale?(:etag => last_post, :last_modified => last_post.updated_at.utc)
respond_to do |format|
format.xml { @posts = Post.sitemap } # sitemap is a named scope
end
end
end
end
- AS Вы можете увидеть, это для блога, поэтому использует модель Post
. Это шаблон просмотра HAML (App / Views / sitemap / index.xml.haml):
- base_url = "http://#{request.host_with_port}"
!!! XML
%urlset{:xmlns => "http://www.sitemaps.org/schemas/sitemap/0.9"}
- for post in @posts
%url
%loc #{base_url}#{post.permalink}
%lastmod=post.last_modified
%changefreq monthly
%priority 0.5
Это все! Вы можете проверить его, поднимая http: // localhost: 3000 / sitemap.xml (при использовании mongrel) в браузере или, возможно, с помощью Curl.
Обратите внимание, что контроллер использует stale ?
Метод для выдачи HTTP 304 не модифицирован ответа Если нет новых сообщений Sinces Site Hapted.
В этой статье объясняет, как можно сгенерировать карта сайта.
В основном следует создать контроллер, который находит все страницы (например, ваши сообщения) и ввести в файл XML. Далее вы говорите Google о расположении файла XML и когда ваш сайт обновляется.
Простой Google Rails Sitemap Query открывает множество других статей, объясняющих в основном то же самое.