7
我想弄清楚爲Grails應用程序生成XML站點地圖(如此處所述:http://www.sitemaps.org/)的最佳方法。我不知道任何現有的插件可以做到這一點,所以我可以建立一個插件。但是,我想先獲得社羣的意見。除了支持標準控制器/操作之外,我認爲支持內容驅動的應用程序以及可能基於標題屬性生成URL的情況是很好的。Grails中的XML站點地圖
你們會怎麼做呢?你會考慮什麼?你將如何實現它?
謝謝!
我想弄清楚爲Grails應用程序生成XML站點地圖(如此處所述:http://www.sitemaps.org/)的最佳方法。我不知道任何現有的插件可以做到這一點,所以我可以建立一個插件。但是,我想先獲得社羣的意見。除了支持標準控制器/操作之外,我認爲支持內容驅動的應用程序以及可能基於標題屬性生成URL的情況是很好的。Grails中的XML站點地圖
你們會怎麼做呢?你會考慮什麼?你將如何實現它?
謝謝!
Sitemaps對於每個應用都非常具體,所以我不確定是否有足夠的通用代碼提取到插件。
以下是我們如何生成http://www.shareyourlove.com的站點地圖。正如你可以看到它是相當小和DRY由於Groovy中/ Grails的真好XML語法
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映射
class UrlMappings {
static mappings = {
"/sitemap"{
controller = 'sitemap'
action = 'sitemap'
}
}
}
啊,所以你正在構建對飛? – RyanLynch 2010-09-20 02:47:18
是的,由於動態部分和事實,它沒有受到很多打擊,所以我們沒有執行任何緩存(但這不會很難)。 – leebutts 2010-09-20 03:29:09
你可以請顯示這個控制器的網址映射嗎? – 2012-02-08 13:59:34