bootstrap-sass:未定义的变量:"$ baseLineHeight"

Tyl*_*itt 17 ruby-on-rails twitter-bootstrap bootstrap-sass

我使用bootstrap-sass将bootstrap集成到我的应用程序中.该应用程序在我的本地计算机上工作正常,但当我通过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)
Run Code Online (Sandbox Code Playgroud)

当capistrano试图跑 assets:precompile

我认为这个变量抛出错误,因为它是第一个尝试预编译的scss文件中的第一个变量.

有些事情没有正确加载.任何想法可能是什么?

编辑

完整跟踪https://gist.github.com/2233071

编辑2

将application.rb和production.rb添加到gist

nob*_*ody 55

您已编辑了production.rb文件,以便Rails将尝试预编译所有CSS/JS文件(第48行).

默认情况下,Rails只会预编译application.css(.scss).通过添加通配符选择器,config.assets.precompile您可以要求Rails预编译应用程序中的每个 css资产,包括Sass partials.当然,这可能不是你想要的行为.

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

因此,Rails将遍历每个css资产,编译它们.碰巧这_accordion.css.scss是它遇到的第一个Bootstrap资产,Rails将首先尝试编译它._accordion不是独立的,并且需要在它之前加载一些文件,因此错误.无论如何,它永远不应该被编译为单独的文件.

您需要更改您config.assets.precompile只需添加您需要的其他文件application.css/application.js.

  • 谢谢。同样在这里。在Rails 4.2.1中,要修改的文件现在位于/config/initializers/assets.rb中 (2认同)