5

私は、bootstrap-rails gem の最新のマスター ブランチを使用しており、Rails アセット パイプラインと互換性のある方法でデフォルトのブートストラップ変数を変更しようとしています。

私の宝石ファイルにはこれらの宝石が含まれています

gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'
gem 'uglifier', '>= 1.0.3'
gem 'less-rails-bootstrap'

私も*= require bootstrap_and_overrides自分のapplication.cssファイルに含めました。スプロケットは各 css ファイルを個別にコンパイルするため、複数の css ファイルが相互に参照できるとは期待できません。したがって、bootstrap_and_overrides.css.less ファイルには以下が含まれます。

@import "twitter/bootstrap/bootstrap";
body { padding-top: 80px; }

//background-image: asset-url("background.png"); background-repeat:no-repeat; background-size: cover;  }

@import "twitter/bootstrap/responsive";

// Set the correct sprite paths
@iconSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings.png');
@iconWhiteSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings-white.png');

// Set the Font Awesome (Font Awesome is default. You can disable by commenting below lines)
@fontAwesomeEotPath: asset-path('fontawesome-webfont.eot');
@fontAwesomeWoffPath: asset-path('fontawesome-webfont.woff');
@fontAwesomeTtfPath: asset-path('fontawesome-webfont.ttf');
@fontAwesomeSvgzPath: asset-path('fontawesome-webfont.svgz');
@fontAwesomeSvgPath: asset-path('fontawesome-webfont.svg');

// Font Awesome
@import "fontawesome";

// Your custom LESS stylesheets goes here
//
// Since bootstrap was imported above you have access to its mixins which
// you may use and inherit here
//
// If you'd like to override bootstrap's own variables, you can do so here as well
// See http://twitter.github.com/bootstrap/less.html for their names and documentation
//
// Example:
// @linkColor: #ff0000;

@navbarHeight: 60px;
@navbarText: @white;
@textColor: @orange;
@navbarLinkColor: @white;
@navbarBackground: darken(@linkColor, 15%);
@navbarBackgroundHighlight: @linkColor;

ただし、私のオーバーライドはどれもアセット パイプラインでは機能しません。それがなくても問題なく動作します。理由を知っている人はいますか?

マイ アセット Gem グループの更新

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'less-rails'
  #  gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'
  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', :platform => :ruby
  gem 'uglifier', '>= 1.0.3'
end
4

3 に答える 3

6

rake assets:precompile展開前にローカルで実行すると、上記の問題が解決しました。

于 2012-05-09T01:08:51.767 に答える
3

私の場合、アセット パイプライン エンジンがリソースを探すディレクトリが正しく設定されていないため、アセットが正しくコンパイルされません。

私はbootstrap-sassを使用しているため、状況が異なる場合があります。しかし、私の場合、次のコードを application.rb に追加すると問題が解決しました。

module ApplicationModuleName
  class Application < Rails::Application

    config.sass.load_paths = []
    config.sass.load_paths << "#{Rails.root}/app/assets/stylesheets"
    %w(bootstrap-sass jstree-rails jquery-rails).each do |pkg|
      config.sass.load_paths << "#{Gem.loaded_specs[pkg].full_gem_path}/vendor/assets/stylesheets"
      config.assets.paths << "#{Gem.loaded_specs[pkg].full_gem_path}/vendor/assets/javascripts"
    end
  end
end

上記の(醜い)パッチを適用する前に、実行rails consoleして値load_pathsまたはそのようなものを確認してください..

于 2012-05-07T05:03:10.213 に答える
0

Rails 4.1 と Ruby 2.0 でより少ないブートストラップを使用していますが、これを application.css.scss に追加して修正しました

*= require_tree .
*= require bootstrap_and_overrides
*= require_self
于 2014-02-24T17:12:19.627 に答える