routesから絶対URLを取得する
routes
から絶対URLを取得したい。
ここでいうroutes
はconf
ディレクトリ内のroutes
ではなく、コンパイル時に生成されるroutesパッケージ
のことを指す。
通常コントローラーでリダイレクトをする際は、
return redirect(routes.IndexController.index());
のようにCall
型オブジェクトを引数として渡すことが多いが、Call#url()
メソッドは相対URLを返すメソッドとなっている。
// 相対URLを取得
routes.IndexController.index().url();
絶対URLを取得するには、request()
と組み合わせて以下のようにすれば良い。
// 絶対URLを取得
routes.IndexController.index().absoluteURL(request());
コントローラーからも、scala templateからも、どちらも同じように使用できる。