Google haritası Raylar projeleri için dosyaları
Kolay bir şekilde Raylar projeler için Site Haritası dosyası oluşturmak için var mı? Özellikle dinamik siteler (Yığın Taşması gibi örneğin) için dinamik olarak site haritası dosyası oluşturmak için bir yolu olmalı. Ruby ve/veya Raylar gitmek için yolu nedir?
PEKİ NE önerirsiniz? Orada herhangi bir iyi gem var mı?
CEVAP
config/routes.rb
dosya (daha belirli rotalar üzerinde yer almalıdır) altına doğru: bu yol ekleyin
map.sitemap '/sitemap.xml', :controller => 'sitemap'
SitemapController
(app/kontrolörleri/sitemap_controller) oluşturmak:
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
ve gördüğünüz Gibi, bu Post
bir modelini kullanıyor o yüzden bir blog için, -. Bu (uygulama/manzarası/site haritası/dizin.şablon HAML görünümdür 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
İşte bu! CURL kullanarak bir tarayıcı, ya da belki de http://localhost:3000/sitemap.xml eğer Melez kullanıyorsanız) yetiştirme alarak test edebilirsin.
Denetleyicisi eğer yeni mesajlar varsa, orada hiçbir Değişiklik Yok HTTP 304 bir yanıt vermesini stale?
yöntemi kullandığını unutmayın site geçen istendi sinces.
Raylar 3.1 varlık boru hattı: nasıl de...
Nasıl Raylar geçiş 3 dosyaları silmek ...
Zaten Git deposu için kaydedilmiş olan...
Git içinde bir tamamlama için tüm dosy...
Nasıl JSP dosyaları Java kod önlemek i...