2010-09-20 21 views
7

Bir Grails uygulaması için XML site haritası oluşturmanın en iyi yolunu (burada açıklandığı gibi: http://www.sitemaps.org/) bulmaya çalışıyorum. Bunu yapan mevcut eklentilerden haberdar değilim, böylece bir tane oluşturabilirim. Ancak, öncelikle topluluğun girişini almak istedim. Standart denetleyicileri/eylemleri desteklemenin yanı sıra, örneğin bir başlık özelliğine dayalı olarak URL'nin oluşturulabileceği içerik odaklı uygulamaların desteklenmesinin iyi olacağını düşünüyorum.Grails'te XML site haritası

Bunun hakkında nasıl düşünürsünüz? Ne düşünürdünüz ve nasıl uygularsınız?

Teşekkürler!

cevap

16

Site Haritaları her uygulamaya oldukça özgüdür, bu yüzden bir eklentiye çekmek için yeterli yaygın kod olup olmadığından emin değilim.

Site haritanızı http://www.shareyourlove.com için nasıl oluşturduğumuz aşağıda açıklanmıştır. Eğer anında o bina konum bu yüzden,

class SitemapController{ 

     def sitemap = { 
      render(contentType: 'text/xml', encoding: 'UTF-8') { 
       mkp.yieldUnescaped '<?xml version="1.0" encoding="UTF-8"?>' 
       urlset(xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9", 
         'xmlns:xsi': "http://www.w3.org/2001/XMLSchema-instance", 
         'xsi:schemaLocation': "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd") { 
        url { 
         loc(g.createLink(absolute: true, controller: 'home', action: 'view')) 
         changefreq('hourly') 
         priority(1.0) 
        } 
        //more static pages here 
        ... 
        //add some dynamic entries 
        SomeDomain.list().each {domain-> 
        url { 
         loc(g.createLink(absolute: true, controller: 'some', action: 'view', id: domain.id)) 
         changefreq('hourly') 
         priority(0.8) 
        } 
       } 
      } 
    } 

URL Eşlemeler

class UrlMappings { 
    static mappings = { 

     "/sitemap"{ 
      controller = 'sitemap' 
      action = 'sitemap' 
     } 
    } 
} 
+0

Ah nedeniyle Groovy/Grails en güzel XML sözdizimine oldukça minimal ve KURU var görebileceğiniz gibi? – RyanLynch

+0

Evet, dinamik bölümler ve pek çok şey fark etmemesi nedeniyle, herhangi bir önbelleğe alma işlemini gerçekleştirme zahmetine girmedik (ancak bunu yapmak zor olmayacak). – leebutts

+0

Bu kontrolör için url eşleştirmelerini gösterebilir misiniz? –

İlgili konular