代码之家  ›  专栏  ›  技术社区  ›  Langali

Grails搜索引擎优化友好URL

  •  6
  • Langali  · 技术社区  · 16 年前

    在grails中创建url的标准方法是:

    <a href="${createLink(controller:'news', action: 'show', params: [id: news.id])}">${news.title}</a>
    

    它生成URL: /news/show/102

    我想要更多的搜索引擎优化友好的网址,如:

    /news/102/this-is-the-hottest-news-today
    

    在grails中最干净的方法是什么?我可以使用grails urlmapping来映射 /新闻/节目/102 /news/102 ,但如何创建如上所述的完整url?

    1 回复  |  直到 16 年前
        1
  •  15
  •   Dave Bower Ekaterina Zdorov    16 年前

    您可以将标题转换为如下参数:

    name story: "/news/$id/$headline" {
        controller = "news"
        action = "show"
    }
    

    这样你就可以创建带有标题的url,并且映射仍然有效。当然,您实际上不必使用将出现在控制器中的headline参数。上面的示例使用命名的url映射,因此您可以说:

    ${createLink(mapping: "story", params: [id: 102, headline: 'this-is-the-hottest-news-today'])}
    

    您可能还对这个用于创建规范url的插件感兴趣。- http://www.grails.org/plugin/canonical

    推荐文章