2012-04-05 15 views
1

Ich möchte mein '/' uri auf eine bestimmte Controller-Aktion umleiten. Ich habe es über den folgenden Code in UrlMappings.groovy zu tun:Url Mapping, Url Umleitung/Umschreiben

"/"(action: "highlights", controller: "project") 

Dies ist jedoch die URL im Browser nicht neu schreiben. Es leitet zur richtigen Controller-Aktion um, aber die Navigations-URL des Browsers befindet sich immer noch unter myProject/. Ich möchte, dass es auf die "richtige" uri aktualisiert wird, so dass neu laden, etc. die "richtige" uri verwenden.

Ich habe versucht:

"/"(uri: "/project/highlights") 

aber ich einen Status 404 Antwort.

Irgendwelche Vorschläge, wie ich vorgehen sollte?

Antwort

3

UrlMappings dient nur dazu, wie Sie die URL Ihrer controller.action zuordnen können. Es wird keine Umleitung machen. Wenn Sie URL-Redirect tun möchten, müssen Sie wahrscheinlich einen http-Server wie Apache vor Ihrem Anwendungsserver einrichten oder der einfachere Weg besteht darin, nur eine controller.action einzurichten, um die Weiterleitung manuell durchzuführen.

"/"(action: "redirect", controller: "project") 

Im project Controller und redirect Aktion, leitet es einfach den Benutzer auf Ihre highlights Aktion.

+1

Ich tat das, danke. PS: Wenn der Name "redirect" lautet, überschreibt die Aktion des Controllers die redirect() -Methode von Grails –

1

Ihre Anwendung wird in myProject/ Kontext bereitgestellt. Daher ist root ("/") für Ihre Anwendung myProject/. Sie möchten Ihre Anwendung in Ihrem Server-Stammkontext bereitstellen. Sie können dies tun, indem Sie grails.app.context = “/” in Ihrer Config.groovy setzen.