2

Rails と Compass を使用しています。私がヒットした時点で本番環境にデプロイするまで、すべてがうまく機能します:

bundle exec rake RAILS_ENV=staging RAILS_GROUPS=assets assets:precompile'
 ** rake aborted!
 ** Undefined mixin 'column'.
 ** (in /....../app/assets/stylesheets/clients.css.sass)

アプリケーション.css.sass

@import compass
@import _blueprint
@import "compass/layout/sticky-footer"
@import "compass/css3/gradient"
@import "partials/_base"
@import "blueprint/reset"
@import "blueprint/colors"
@import "blueprint/grid"
@import "blueprint/fancy-type"
@import "blueprint/scaffolding"
@import "blueprint/form"
@import "clients"

client.css.sass

#clients
  +column(4)

したがって、clients.css.sass はコンパスやブループリントなどをインポートしないことがわかります。b/c は application.css.sass によってインポートされます。しかし、アセット コンパイラがこのファイルを単独でコンパイルしようとするのはなぜでしょうか? 各css.sassファイルに「@import compass」を追加することで修正できますが、そうする必要はないようです。

4

2 に答える 2

3

アプリケーション マニフェストに含まれていないことを確認してくださいrequire_tree .。スプロケットが sass インポートの外部でファイルを必要とする場合、常にこのエラーが発生します。最初はそれでかなり悩みました。

そうでない場合、Rails のどのバージョンを使用していますか? 初期の Rails 3.1.x では、rake のプリコンパイルにいくつかの問題がありましたが、後で修正されました...

于 2012-04-20T17:26:17.090 に答える
0

@importRails とアセット パイプラインで、部分表記を使用してサブ要素をコンパスおよびブループリントする必要があることがわかりました。関数を機能させるには、次のcolumnものが必要です。

@import "blueprint/_grid"

余談ですが、最初の 2 行に引用符を使用していない理由は何であれ、次のものが必要であると予想していました。

@import "compass"
@import "blueprint"

この場合、blueprint行に先頭が必要かどうかは100%確実ではありませんが、 Rails 3.2.3ではそれなしで_インポートすることは間違いありませんcompass

于 2012-04-21T13:29:27.587 に答える