1

bootstrap-sassRailsアプリケーションで使用しています。これまでのところ、すべて正常に機能していますが、ブートストラップ変数を使用する別のサードパーティの sass ファイルをインポートしようとしたところ、それらが表示されません。

私の中でapplication.css.scss

*= require bootstrap_local

bootstrap_local.css.scss

@import "bootstrap";
@import "bootstrap-social";

ページにアクセスすると Rails エラーが発生します

Undefined variable: "$line-height-computed".
(in .../app/assets/stylesheets/bootstrap-social.scss:11)

によって必要とされる変数bootstrap-social.scssは、以前にインポートされたbootstrapファイルで定義されています (実際には、含まれているパーシャルbootstrap/variablesで定義されています)。

私が理解している限り、これbootstrap_localは is requiredであるため機能するはずです。つまり、その中のすべてが 1 つのスコープで一緒にコンパイルされるため、にインポートされたものはすべてbootstrap_local1 つの大きなファイルとして扱われます。おそらく私はこれを間違っていますか?

をスローすると、正常に@import "bootstrap";動作bootstrap-social.scsします。しかし、これを行う必要はないので、何か間違ったことを行っているか、セットアップに何らかの設定ミスがあります。

これを修正するにはどうすればよいですか?

宝石:

  • ブートストラップ-sass-3.1.1.1
  • サスレール-4.0.3

システム:

  • レール 4.0.1
  • ruby 2.0.0p247 (2013-06-27 リビジョン 41674) [x86_64-linux]

( Bootstrap Socialは、Bootstrap と Font Awesome に基づいて純粋な CSS で作成されたソーシャル サインイン ボタンのセットです。)

4

1 に答える 1

0

質問で説明されている問題は、代わりにapplication.css.scss使用するマニフェストを変更することで解決できます。importrequire

@import "bootstrap_local";

マニフェストからも削除する必要があります。require_tree .そうしないと、パスにあるために同じファイルが必要になるからです。bootstrap_local

振り返っrequire tree .てみると、不要なファイルが含まれるのを防ぐため、マニフェストに含めない方がおそらく賢明です。デフォルトで新しいRailsプロジェクトにあるので、そこにしかありませんでした(同じことがrequire_selfマニフェストに含まれていない方がクリーンです)。

ファイルの前にアンダースコアを付けることに関する提案を参照して、これbootstrap-social、質問のように、ファイルを別の CSS ファイルにコンパイルする必要がない場合に行うのに適しています。だから、私はそれをに名前を変更することになりました_bootstrap-social.scss

于 2014-07-16T19:35:40.677 に答える