3

Play プロジェクトを 2.3 に移行し、ShaggyYeti のsbt-sass プラグイン( play-sass プラグインからの変更) を使用して SCSS ファイルをコンパイルしました。に配置される縮小された css にすべてをバンドルします/assets/stylesheets/main.min.css。webjars を使用してフロントエンド ライブラリをプルし始めるまでは、すべて問題なく機能していました。

Webjar 自体は正しく機能し、それらの scss をメインの css にバンドルできますが、他のリソースを参照する webjar から scss をバンドルすると問題が発生します。たとえば、font-awesomelib/font-awesomeはのような場所にフォントと共にダウンロードされます/assets/lib/font-awesome/fonts/fontawesome-webfont.eot。問題は、font-awesome scss がそれを参照し../fonts/fontawesome-webfont.eot、コンパイル後に/assets/fonts/fontawesome-webfont.eot.

ここで何かが足りないのでしょうか、それとも、この新しいシステムが導入されてからまだ時間が経っていないために、まだ解決されていない癖ですか? 後者の場合、ここで適切な解決策はどれだと思いますか?

  1. プラグインを使用して、参照されたファイルを予想されるフォルダーに移動/コピーする必要がありますか? また
  2. SCSS コンパイラ/プラグインは webjar ダウンロード フォルダーへのパスを書き換える必要がありますか? また
  3. font-awesome の縮小された css を別のリンクとして含める必要がありますか?

Webjar 内の scss は明らかに scss に関連するリソースを参照しているため、(2) が適切な解決策であると考える傾向があります。これは、宛先 css に対して相対的に書き換える必要があります。

4

3 に答える 3

2

これにはより良いサポートが必要です。テンプレートで参照を直接宣言することを回避します。

<link rel="stylesheet" href="@routes.WebJarAssets.at(WebJarAssets.locate("font-awesome.min.css"))" />

試行する前に、メインのレスに font-awesome をインポートします。

@import "lib/font-awesome/less/font-awesome.less";

しかし、インポートはあなたが言ったように動作し、機能しません。問題は、より少ないものをカスタマイズしたい場合 (そしてそれがより少ないものを使用する理由です)、そのストレートフォワードを行うことができないことです。もう 1 つの回避策は、フォント フォルダーをパブリック フォルダーに配置し、一緒にコミットすることです。

この問題は、sass やその他のリソースでも発生します。

于 2014-10-26T01:36:18.133 に答える
1

次の行を _variable.scss に追加するだけです

$fa-font-path: "/assets/lib/font-awesome/fonts";

ここを参照してください:http://fortawesome.github.io/Font-Awesome/get-started/#custom-less

于 2014-11-07T17:27:17.580 に答える