【问题标题】:Grails SEO friendly URLsGrails SEO 友好的 URL
【发布时间】:2011-01-22 09:42:11
【问题描述】:

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

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

生成url:/news/show/102

我想要更多 SEO 友好的 URL,例如:

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

在 Grails 中最简洁的方法是什么?我可以使用 grails URLMapping 将/news/show/102 映射到/news/102,但是如何创建像上面这样的完整 URL?

【问题讨论】:

    标签: url grails seo url-mapping


    【解决方案1】:

    你可以把标题变成这样的参数:

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

    这样您就可以创建带有标题的网址,并且映射仍然有效。当然,您实际上不必使用将出现在控制器中的标题参数。上面的例子使用了一个命名的 URL 映射,所以你可以说:

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

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

    【讨论】:

    • 戴夫谢谢!这种方法对于多语言站点非常方便,您可以在其中根据当前语言环境定位特定的映射器。在我的示例中,我有 story-en 和 story-hr 映射,在我的 g:link 中我使用映射:“story-${locale}”,它为选定的语言环境选择适当的映射器。
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2016-04-13
    • 2014-04-16
    • 2016-05-28
    • 2013-01-22
    相关资源
    最近更新 更多