10

Play フレームワークでBootstraps グリフィコンを使用したい

そのため、使用する<i class="icon-search" />と、ブートストラップは「assets/img/...」でアイコンを探します。画像は「assets/images/...」にあるため、この動作は play アプリケーションの構造と競合します。

そこで、「assets/img」への GET リクエスト用の追加ルートを定義して、これを再マップしようとしました。

# Map static resources from the /public folder to the /assets URL path
GET     /assets/img/*file           controllers.Assets.at(path="/public/images", file)
GET     /assets/*file               controllers.Assets.at(path="/public", file)

しかし、そうすると、呼び出している他のすべてのパブリックアセットで、「(path: String, file: String)play.api.mvc.Call. Unspecified value parameter file.」というコンパイルエラーが発生します。

私は何を間違っていますか?

4

3 に答える 3

9

実際に私の問題を説明すると、ここで検索するのに役立ちました;) ...stackoverflowにはすでに答えがあります。私の質問がこの問題に少なくとも関連性をもたらすことを願っています。私は自分で答えています。

How to use Twitter Bootstrap 2 with play framework 2.xによると、すべてのグリフィコン ファイルに対して静的ルートを定義する必要があり、他のアセットへのリクエストが「誤ってルーティング」されることはありません。

私は単に追加しました

# Map Bootstrap images
GET     /assets/img/glyphicons-halflings.png            controllers.Assets.at(path="/public", file="/images/glyphicons-halflings.png")
GET       /assets/img/glyphicons-halflings-white.png      controllers.Assets.at(path="/public", file="/images/glyphicons-halflings-white.png")

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)

したがって、フレームワークを特別な方法で変更する必要はありません。

とにかくあなたの提案に感謝します

于 2013-03-11T17:41:22.607 に答える
4

実際...人々はしばしばいくつかの初期構造をそれが完全に同じでなければならないことと混同します。フォルダの場合app、それは正しいです。Playはいくつかの暗黙的なインポートを使用し、理由もなく変更するcontrollersmodels、その価値以上の問題が発生します。とにかくpublic、フォルダはデフォルトのアクション/コントローラ/ビューでレンダリングされないため、そのレイアウトは完全にカスタマイズできます。

(注:わかりました、告白する必要があります。このドキュメントを読んでいませんでした。すべてのPlayアプリケーションの一貫性を保つために、このように静的アセットを整理する必要があります。しかし、そうではありません!:))

一般的なルールは次のとおりです。dirに配置されているすぐに使用できるフレームワークやプラグインなどを壊さないでくださいpublic。たとえば、いくつかの追加ルートを使用してブートストラップを非常に簡単に変更できますが、Alohaエディターで同じことを試してみると、おそらく永久に損傷するでしょう。クリーンな構造を維持したい場合は、サンプルpublic/frameworks/bootstrap-currentフォルダーを作成し、元の作成者からパッケージを抽出します。

パックを解凍するだけで新しいバージョンに更新でき、頭痛の種も回避できます。

于 2013-03-12T20:29:41.123 に答える
2

Bootstrap LESS を使用している場合は、variables.less のパスを変更します。

// Sprite icons path
// -------------------------
@iconSpritePath:          "assets/images/techcore/glyphicons-halflings.png";
于 2013-03-11T17:30:47.947 に答える