SEO Grails дружественные URL

Стандартный способ создать 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? Я мог использовать чаши Грааля URLMapping для отображения /news/show/102 кому: /news/102, но как я действительно создаю полный URL как вышеупомянутый?

6
задан Langali 1 March 2010 в 17:47
поделиться

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

15
ответ дан 8 December 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: