2012-04-05 19 views
1

私の/ 'URIを指定されたコントローラの動作にリダイレクトしたい。私はUrlMappings.groovyに次のコードを経由して、それを行うために使用される:URLマッピング、URLのリダイレクト/書き換え

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

しかし、これはブラウザでURLを書き換えません。正しいコントローラのアクションにリダイレクトされますが、ブラウザのナビゲーションURLはまだmyProject/です。私はそれが "正しい" URIに更新されるようにして、再ロードなどが "正しい" URIを使用するようにしたいと思います。

は、私が試した:

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

が、私は、ステータス404の応答を取得します。

どのように進めるべきですか?

答えて

3

URLマッピングは、urlをcontroller.actionにマップする方法のみです。リダイレクトは行われません。 urlリダイレクトを行う場合は、アプリケーションサーバーの前にapacheのようなhttpサーバーを設定するか、リダイレクトを手動で行うようにcontroller.actionを設定するほうが簡単です。 projectコントローラ、およびredirectアクションで

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

、ちょうどあなたのhighlightsアクションにユーザーをリダイレクトします。

+1

私はそれをありがとう。 PS: "redirect"という名前の場合、コントローラの動作はGrailsのredirect()メソッドをオーバーライドします –

1

アプリケーションがmyProject/コンテキストにデプロイされています。したがって、アプリケーションのルート("/")はmyProject/です。あなたがしたいのは、アプリケーションをサーバーのルートコンテキストにデプロイすることです。 Config.groovyにgrails.app.context = “/”と設定することでこれを行うことができます。