7

Grails アプリケーション用の XML サイトマップ (ここで説明されているように: http://www.sitemaps.org/ ) を生成する最良の方法を見つけようとしています。これを行う既存のプラグインを認識していないので、作成する可能性があります。ただし、コミュニティの意見を最初に聞きたかったのです。標準のコントローラー/アクションのサポートとは別に、たとえばタイトル プロパティに基づいて URL が生成されるコンテンツ駆動型アプリもサポートできればよいと考えています。

これについてどう思いますか?何を検討し、どのように実装しますか?

ありがとう!

4

2 に答える 2

16

サイトマップは各アプリにかなり固有のものであるため、プラグインに引き出すのに十分な共通コードがあるかどうかはわかりません.

http://www.shareyourlove.comのサイトマップを生成する方法を次に示します。ご覧のとおり、Groovy/Grails の優れた XML 構文により、かなり最小限で DRY になっています。

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'
        }
    }
}
于 2010-09-20T02:30:30.813 に答える