2

私は、Sass と Sass の @import を使用して複数の CSS を 1 つに結合する Rails 4 プロジェクトに取り組んでいます。それは正常に動作しますが、新しいパーシャルを mixins ( _mixins.css.scss)に使用し、@importmain.css.scssのみでこれを使用し、その後に追加された他のファイルを mixins を使用する場合は機能しません_webapp.css.scss

    @import "bootstrap/bootstrap";
    @import "responsive/mega_menu";
    @import "responsive/mixins";
    @import "responsive/webapp";

Rails のプリコンパイル プロセスで " " が見つからず、responsive/mixinsエラーが発生します。_webapp.css.scss

Sass::SyntaxError: Undefined mixin 'mixin_name'.

ここmixin_nameで定義されていますresponsive/mixins

4

3 に答える 3

1

main.css.scss 以外のスタイルシートが mixin パーシャルの mixin を使用している場合は、それらの中にもインポートする必要があります。そのため、webapp パーシャルにミックスインをインポートする必要があるようです。

于 2014-11-11T15:36:26.357 に答える
0

これはアセット パイプラインの問題のように思えます。Railsのドキュメントから:

複数の Sass ファイルを使用する場合は、通常、これらの Sprockets ディレクティブの代わりに Sass @import ルールを使用する必要があります。Sprockets ディレクティブを使用すると、すべての Sass ファイルが独自のスコープ内に存在し、変数または mixin が定義されたドキュメント内でのみ使用可能になります。

どこかに sprocket ディレクティブがなく、responsive/webapp(暗黙のうちにrequire_tree) を要求していませんか?

頭に浮かぶ他の可能性は、この未定義の mixin エラーがインポートされる前に実際に呼び出される可能性があることです。のどこかでその mixin を使用していませんかmega_menu?

于 2014-11-11T16:22:23.370 に答える