sitemap soubory mapu kolejnic projekty

hlasů
57

Existuje jednoduchý způsob, jak vytvořit soubor Sitemap pro projekty kolejnice? Speciálně pro dynamické stránky (například přetečení zásobníku například) by měl existovat způsob, jak dynamicky vytvořit soubor Sitemap. Jaký je způsob, jak jít v Ruby a / nebo Rails?

Co byste navrhovali? Existuje nějaký dobrý gem tam venku?

Položena 16/01/2010 v 13:11
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
47

Přidat tuto trasu směrem k dolní části config/routes.rbsouboru (konkrétnější trasy by měly být uvedeny nad ní):

map.sitemap '/sitemap.xml', :controller => 'sitemap'

Vytvořte SitemapController(APP / Controller / 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

-Jak můžete vidět, je to pro blog, takže je pomocí Postmodelu. To je HAML pohled šablona (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

A je to! Můžete ji otestovat tím, že do http: // localhost: 3000 / sitemap.xml (pokud používáte kříženec) v prohlížeči, nebo možná pomocí kroutit.

Všimněte si, že regulátor používá stale?metodu vydat HTTP 304 nezmění odpověď, pokud nejsou k dispozici žádné nové příspěvky sinces Sitemap poslední požadováno.

Odpovězeno 16/01/2010 v 15:46
zdroj uživatelem

hlasů
23

Nyní rails3, je lepší vypnout pomocí plnohodnotné sitemap_generator gem.

Odpovězeno 22/12/2010 v 12:51
zdroj uživatelem

hlasů
19

Miluji Johna Topley je odpověď, protože je to tak jednoduché a elegantní, aniž by bylo nutné pro drahokam. Ale je to trochu starý, takže jsem aktualizoval svůj odpověď na kolejích 4 a nejnovější mapa stránek směrnic Google Webmaster Tools.

config / routes.rb:

get 'sitemap.xml', :to => 'sitemap#index', :defaults => { :format => 'xml' }

app / řadiče / sitemap_controller.rb:

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.all }
      end
    end
  end
end

app / views / sitemap / index.xml.haml:

!!! XML
%urlset{:xmlns => "http://www.sitemaps.org/schemas/sitemap/0.9"}
  - for post in @posts
    %url
      %loc #{post_url(post)}/
      %lastmod=post.updated_at.strftime('%Y-%m-%d')
      %changefreq monthly
      %priority 0.5

Můžete ji otestovat tím, že až localhost: 3000 / sitemap.xml.

Odpovězeno 08/10/2013 v 05:13
zdroj uživatelem

hlasů
10

Doporučila bych, že byste se podívat na sitemap_generator gem . To se zabývá všemi těmito otázkami pro vás ... a opravdu, kdo chce, aby nepořádek kolem authoring XML?

Zde je příklad sitemap ukázat, jak se s pomocí svého Rails modely a cesty pomocníky vygenerovat sitemap URL:

# config/sitemap.rb
SitemapGenerator::Sitemap.default_host = "http://www.example.com"
SitemapGenerator::Sitemap.create do
  add '/contact_us'
  Content.find_each do |content|
    add content_path(content), :lastmod => content.updated_at
  end
end

Pak můžete použít hrábě úkoly, které mají aktualizovat tak často, jak byste chtěli. Je to opravdu tak jednoduché :)

Odpovězeno 01/09/2011 v 19:39
zdroj uživatelem

hlasů
6

Zde je plugin pro vytváření mapy stránek v Ruby on Rails: Ruby on Rails sitemap plugin . To se stará o většinu logiky sitemap a generace. Plugin je z mé domovské stránce.

Příklad konfigurace:

Sitemap::Map.draw do

  # default page size is 50.000 which is the specified maximum at http://sitemaps.org.
  per_page 10

  url root_url, :last_mod => DateTime.now, :change_freq => 'daily', :priority => 1

  new_page!

  Product.all.each do |product|
    url product_url(product), :last_mod => product.updated_at, :change_freq => 'monthly', :priority => 0.8
  end

  new_page!

  autogenerate  :products, :categories,
                :last_mod => :updated_at,
                :change_freq => 'monthly',
                :priority => 0.8

  new_page!

  autogenerate  :users,
                :last_mod => :updated_at,
                :change_freq => lambda { |user| user.very_active? ? 'weekly' : 'monthly' },
                :priority => 0.5

end

S pozdravem, Lasse

Odpovězeno 29/10/2010 v 22:54
zdroj uživatelem

hlasů
1

Tento článek vysvětluje, jak lze generovat Sitemap.

V zásadě by se měla vytvořit řadič, který nalezne všechny stránky (např vaše příspěvky) a dát do XML souboru. Dále budete Googlu sdělit, o umístění souboru XML a když vaše webové stránky je aktualizován.

Jednoduchý Google kolejnice sitemap dotaz odhaluje spoustu dalších článků vysvětlující v podstatě totéž.

Odpovězeno 16/01/2010 v 14:34
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more