17

bootstrap-sass を使用して、ブートストラップをアプリに統合しました。アプリはローカル マシンで正常に動作しますが、capistrano 経由でデプロイすると、次のエラーが発生します。

Undefined variable: "$baseLineHeight".
(in /var/www/CollegeSportsBlueBook/shared/bundle/ruby/1.9.1/gems/bootstrap-sass-2.0.1/vendor/assets/stylesheets/bootstrap/_accordion.scss)

カピストラーノが走ろうとするときassets:precompile

この変数は、プリコンパイルが試行された最初のscssファイルの最初の変数であるため、エラーをスローしていると思います。

何かが正しく読み込まれていません。それが何であるかについてのアイデアはありますか?

編集

完全なトレースはこちらhttps://gist.github.com/2233071

編集 2

gist に application.rb と production.rb を追加

4

3 に答える 3

55

You've edited your production.rb file so that Rails will attempt to precompile all CSS/JS files (line 48).

By default Rails will only precompile application.css(.scss). By adding the wildcard selector to config.assets.precompile you are asking Rails to precompile every css asset in your application, including Sass partials. Naturally, this is probably not the behaviour you wish for.

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += %w( *.css *.js )

Rails will therefore iterate over each css asset, compiling them. It so happens that _accordion.css.scss is the first Bootstrap asset it comes across, and Rails will attempt to compile that first. _accordion isn't independent, and requires some files to be loaded before it, hence the error. It should never be compiled as a separate file anyway.

You need to change your config.assets.precompile to add only the additional files that you need aside from application.css/application.js.

于 2012-03-31T13:42:22.473 に答える
1

すべての CSS のインポートが適切な順序で行われていることを確認する必要があります。変数を機能させるには、ロードする最初のいくつかの css ファイルの 1 つにする必要があります。

この投稿/回答は、Rails の適切な SCSS アセット構造に役立つはずです

于 2012-03-29T17:11:19.410 に答える
1

最初は、 Sass::SyntaxError: Undefined variable: "$alert-padding" という同様の問題がありました。ファイル内の次の行に問題assets.rbがあります:

Rails.application.config.assets.precompile += [/.*\.css/] 

理由はわかりませんが、私にとってはこの行に変更するのに役立ちました

Rails.application.config.assets.precompile += [/^[-_a-zA-Z0-9]*\..*/]

その後、問題は解決され、すべてが本番環境で機能しました。

于 2016-05-17T08:39:53.723 に答える