mardi 7 janvier 2014

Comment ajouter un sitemap à son application Grails ?

Aujourd'hui, je vais ajouter une sitemap à mon nouveau site web fait avec Grails.
La première des chose à faire est d'en générer une.Pour cela, il y a des sites en ligne qui le font pour vous. Par exemple :http://www.xml-sitemaps.com . Il vous suffit de mettre l'url de votre site web et cela va vous générer une sitemap avec différents formats (xml, zip ... ). Voici un exemple de sitemap généré :
<?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">
<!-- created with Free Online Sitemap Generator www.xml-sitemaps.com -->

<url>
  <loc>http://opendoowap-totalprog.rhcloud.com/</loc>
</url>
<url>
  <loc>http://opendoowap-totalprog.rhcloud.com/page/training</loc>
</url>
<url>
  <loc>http://opendoowap-totalprog.rhcloud.com/page/about</loc>
</url>
<url>
  <loc>http://opendoowap-totalprog.rhcloud.com/page/under</loc>
</url>
<url>
  <loc>http://opendoowap-totalprog.rhcloud.com/page/website</loc>
</url>
</urlset> 

Ensuite, il faut télécharger le fichier sitemap.xml et le mettre dans le répertoire web-app de votre application Grails. Il faut ensuite modifier le fichier BuildConfig.groovy  :

grails.war.copyToWebApp = { args ->
    fileset(dir:"web-app") {
        include(name: "js/**")
        include(name: "css/**")
        include(name: "fonts/**")
        include(name: "images/**")
        include(name: "WEB-INF/**")
        include(name: "sitemap.xml")
    }
}
Pour finir, vous n'avez plus qu'à exécuter  grails war et le déployer dans Tomcat.
Maintenant votre sitemap est accessible à l'url suivante : http://your.app.com/sitemap.xml et vous pouvez l'intégrer à Google webmaster tools.




jeudi 2 janvier 2014

Grails balise meta et internationalisation

Si vous utilisez l'internationalisation avec Grails, vous avez surement l'habitude d'utiliser les balises <g:message ...>.
Mais comment utiliser cette balise pour par exemple remplir content de la balise Meta ?
Voici comment :

<meta name="description" content="${message(code:'index.goal')}" />