2011-09-08 5 views
7

最初は、私はTwitterのアイコンにこのリンクを持っていた:静的ファイルの経路を逆にするにはどうすればよいですか?

@{'/public/images/twitter-icon.png'/} 

しかし、今、私はタイプに応じTwitter-、Facebook-やLinkedInのアイコンを表示したいです。そこで、型をパラメータとするFastTagを作成しました。コードは次のようになります。

これは問題なく動作します。しかし、私たちのビルドサーバー上で、我々はこの

http://ourdomain.com/appname/... 

明らかに/公共/画像のようなURIに接頭辞を持つアプリケーションを実行する...ここでは動作しません。だから私はルータに適切なアドレスを尋ねなければならないと思った。

Router.reverse("/public/images/" + type + "-icon.png"); 
Router.reverse("/public/"); 
Router.reverse("staticDir:public"); 

NoRouteFoundExceptionですべての3つの結果を:ノー成功を収めて、次の試してみました。アイコンの正しいルートを取得するにはどうすればよいですか?ルートで

は、私は静的ファイル

GET  /public/  staticDir:public 

答えて

9

私は、これはあなたが望むものであると信じて:

String imageUrl = Router.reverse(VirtualFile.fromRelativePath("public/images/" + type + "-icon.png")); 
0

のデフォルトルートは、URL形式のアクションを生成する使用することRouter.reverseしたファイル! 多分あなたはあなたのアプリケーション名とルート1アクションなどが含まルート定義することができます。今

GET/APPNAME /公共/ TestController.test

を、あなたは

Router.reverse(「TestControllerを使用することができます.test ")

URLを取得します。

+0

万が一あなたがこの答えで少し試して展開することができますか?今実際に使用するものは何も言いません:/ – obfuscation

0

私はそれが何かやる方が良いと思う:

GET  /img/  staticDir:public/images 

そして、ちょうどテンプレート内を:

out.print("/img/" + type + "-icon.png"); 
+0

私たちはこのようなURLで遊びをしている私たちの場合はうまくいかないでしょう:http://ourdomain.com/appname/img/ -icon.png 。/appname/img/ -icon.png /img/ -icon.png –

関連する問題