Bootstrap 3 on Railsアプリのインストール


112

RailsアプリにBootstrap 3.0をインストールしようとしています。最近、Michael Hartlのチュートリアルを終了し、この新しいバージョンのBootstrapを使用して独自のシステムを構築しようとしていますが、不明な点がいくつかあります。

私のシステム仕様:

  • MBP上のOS X Mountain Lion
  • Rails 4.0
  • Ruby 2.0

私が持っている質問:

  1. Gemfileで使用するのに最適なgemは何ですか?それらのいくつかを見つけました。
  2. 何をインポートしますcustom.css.scssか?2.3.2とは違うとどこかで読んだことがあります。
  3. Bootstrapを機能させるために他に必要なことはありますか、それとも残りの手順はBootstrap 2.3.2で実行した手順と同じですか?

編集する

ここでは何ですGitHubの上のブートストラップ・レールのプロジェクトが最初に行うことを言います。

gem 'anjlab-bootstrap-rails', :require => 'bootstrap-rails',
                              :github => 'anjlab/bootstrap-rails'

次にそれを行うように言います:

gem 'anjlab-bootstrap-rails', '>= 3.0.0.0', :require => 'bootstrap-rails'

彼らは同じことをしますか、それとも両方ともしなければなりませんか?

回答:


272

実際、これにはgemは必要ありません。RosにBootstrap 3をインストールする手順は次のとおりです

  • ブートストラップをダウンロード

  • コピー:

    bootstrap-dist/css/bootstrap.css そして bootstrap-dist/css/bootstrap.min.css

    に: vendor/assets/stylesheets

  • コピー:

    bootstrap-dist/js/bootstrap.js そして bootstrap-dist/js/bootstrap.min.js

    に: vendor/assets/javascripts

  • 更新: app/assets/stylesheets/application.css追加することにより:

    *= require bootstrap.min
  • 更新: app/assets/javascripts/application.js追加することにより:

    //= require bootstrap.min

これにより、いつでもブートストラップを更新でき、gemが更新されるのを待つ必要はありません。また、このアプローチでは、アセットパイプラインは本番環境で縮小バージョンを使用します。


2
同意する。また、ファイルを直接挿入すると、アセットをプリコンパイルする際の問題が少なくなることもわかりました(たとえば、Herokuにプッシュするため)。
Amy.js 2013

26
に縮小されたファイルを含める利点はありますvendor/assets/{stylesheets|javascripts}か?スプロケットは、に含まれているファイルを縮小する必要がありますapp/assets/{stylesheets|javascripts}
jrhorn424 2013年

16
画像ファイルとフォントファイルを含める方法
wwli 2013年

5
@wwli-以下の私の答えを参照してください。グリフィコンとフォントを追加する方法を説明します。
rvg 2013年

4
なぜbootstrapとbootstrap.minの両方をコピーするのですか?
JohnMerlino 2014

62

多くの人が知っているように、宝石は必要ありません。

実行する手順:

  1. ブートストラップをダウンロード
  2. コピーする

    bootstrap/dist/css/bootstrap.css
    bootstrap/dist/css/bootstrap.min.css 

    に: app/assets/stylesheets

  3. コピーする

    bootstrap/dist/js/bootstrap.js
    bootstrap/dist/js/bootstrap.min.js 

    に: app/assets/javascripts

  4. 追加先: app/assets/stylesheets/application.css

    * =ブートストラップが必要

  5. 追加先: app/assets/javascripts/application.js

    // =ブートストラップが必要

以上です。新しいクールなBootstrapテンプレートを追加する準備ができました。


なぜapp/代わりにvendor/

ファイルをapp / assetsに追加することが重要ですです。将来的には、Bootstrapスタイルを上書きできるようになります。

後でcustom.css.scssカスタムスタイルのファイルを追加する場合。あなたはこれに似た何かを持っているでしょうapplication.css

 *= require bootstrap                                                            
 *= require custom  

ブートストラップファイルをapp / assetsに配置した場合、すべてが正常に機能します。ただし、それらをvendor / assetsに配置した場合、ブートストラップファイルは最後にロードされます。このような:

<link href="/assets/custom.css?body=1" media="screen" rel="stylesheet">
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">

したがって、Bootstrapスタイルがそれらをオーバーライドするため、一部のカスタマイズは使用されません。

この背後にある理由

Railsは多くの場所でアセットを検索します。この場所のリストを取得するには、次のようにします。

$ rails console
> Rails.application.config.assets.paths

出力では、app / assetsが優先され、最初にロードされることがわかります。


4
application.cssファイル内のrequireステートメントの順序は、パスリスト内のディレクトリの順序ではなく、ファイルがロードされる順序を制御しませんか?通常、パスの順序は、パスリストに含まれている複数のディレクトリでファイルが見つかった場合に、ロードされるファイルのバージョンを制御します。そうでない場合、requireステートメントの順序はどのように機能しますか?
キックブル2014

2
縮小バージョンをコピーしないでください。コピーすると、後で二重にインクルードされます( 'require_tree。'がそのように機能しているようです)。このダブルインクルードのために、bootsy gemをインストールした後、ドロップダウンを開くことができませんでした。
高林堂姫2014

1
@香林堂姫のコメントは注目に値するようです。.minファイルを削除するまで、ドロップダウンを開くことができませんでした。
Paco Abato、2016年

35

この答えは、gemを使用せずにRailsアプリにBootstrap 3をインストールすることを検討している人を対象としています。これを行うには、10分もかからない2つの簡単な方法があります。ニーズに最適なものを選択してください。GlyphiconsとJavascriptは動作し、Rails 4.1.0の最新のベータ版でもテストしました。

  1. Rails 4でのBootstrap 3の使用-Bootstrap 3ファイルは、アプリケーションのベンダーディレクトリにコピーされます。

  2. BootstrapをCDNからRailsアプリケーションに追加する-Bootstrap 3ファイルはBootstrap CDNから提供されます。

上記の2番が最も柔軟です。レイアウトヘルパーに保存されているバージョン番号を変更するだけです。そのため、3.0.0、3.0.3、または古いBootstrap 2リリースであっても、選択したバージョンのBootstrapを実行できます。


これを機能させることができないようです。localhost:3000/fonts/glyphicons-halflings-regular.svgChromeコンソールの例として検索を続け、グリフィコンは(404として)表示されません。
Steve

1
@Steve-開発に問題があり、上記の#1を選択したと想定しています。それが正しい場合は、Bootstrapフォントディレクトリとその内容がすべて/vendor/assets/プロジェクトにコピーされていることを再確認します。また、application.cssをチェックして、bootstrap.minが必要であり、@ font-faceがオーバーライドされていることを確認してください。SCSSは最近広く使用されています。それを使用している場合は、@ font-faceオーバーライドで「src:url」を「src:asset-url」に変更する必要があります。投稿の下部に役立つサンプルプロジェクトもあります。
rvg 2014

フォントに問題はありませんでした。開発では問題なく動作しましたが、製品では動作しませんでした。
最終的に

22

Twitterには、sem対応バージョンのブートストラップの gemが含まれているため、これをRailsに追加するのがこれまでになく簡単になりました。

以下をgemfileに追加するだけです:

gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2
gem 'bootstrap-sass', '~> 3.1.1'

bundle install サーバーを再起動して、ファイルをパイプライン経由で使用できるようにします。

コンパスとsassのみのサポートもありますhttps : //github.com/twbs/bootstrap-sass


ありがとう。初心者向けのgithub readmeの要点。「新しいRailsアプリを生成したばかりの場合は、代わりに.cssファイルが付属している可能性があります。このファイルが存在する場合、Sassの代わりに提供されるので、名前を変更してください...」
Brett

11

私はhttps://github.com/yabawock/bootstrap-sass-railsを使用しています

これは、かなり単純なインストールであり、gemの高速更新とフォローアップ、および必要な場合の迅速な修正です。


1
このgemは非推奨です(彼らが彼ら自身を指摘しているように)。代わりに公式のSASSポートを使用してください:github.com/twbs/bootstrap-sass(この回答もご覧ください:stackoverflow.com/a/20875719/3451975
Jeehut

5

gem bootstrap-sass

bootstrap-sassは、アセットパイプラインを使用して簡単にRailsにドロップできます。

Gemfileで、bootstrap-sass gemを追加し、sass-rails gemが存在することを確認する必要があります。デフォルトで新しいRailsアプリケーションに追加されます。

gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2 gem 'bootstrap-sass', '~> 3.0.3.0'

bundle install サーバーを再起動して、ファイルをパイプライン経由で使用できるようにします。

ソース:http : //rubydoc.info/gems/bootstrap-sass/3.0.3.0/frames


3

私にとって、これを行う最も簡単な方法は

1)ブートストラップをダウンロードして解凍します vendor

2)設定にブートストラップパスを追加します

config.assets.paths << Rails.root.join("vendor/bootstrap-3.3.6-dist")

3)それらを要求する

CSSで *= require css/bootstrap

jsで //= require js/bootstrap

できた!

このメソッドは、他の特別な構成なしでフォントをロードし、自己完結型のディレクトリからブートストラップファイルを移動する必要がありません。


3

このブランチを使用すると、うまくいけば問題が解決します。

gem 'twitter-bootstrap-rails',
  git: 'git://github.com/seyhunak/twitter-bootstrap-rails.git',
  branch: 'bootstrap3'

1

新しいブートストラップバージョンの最新の宝石はフォームanjlabだと思います。

しかし、それが現在、simple_formなどの他のgemでうまく機能するかどうかはわかりませんrails generate simple_form:install --bootstrap。新しいブートストラップバージョンに合わせるために、初期化子や構成を編集する必要があるかもしれません。


ご返信ありがとうございます。私のGemfileの「gem anjlab」だけで、@ tbraun89を実行できますか?
megashigger 2013

readmeはgithubページにあります。現在の宝石はgem "anjlab-bootstrap-rails", "~> 3.0.0.1"です。
tbraun89 2013

:READMEで、彼らはこれを行うgem 'anjlab-bootstrap-rails', '>= 3.0.0.0', :require => 'bootstrap-rails'
tbraun89

ありがとう!質問に何かを追加しました。「編集」後の部分を明確にしていただけませんか?
メガシガー2013

最初のファイルはgithubから直接ファイルをロードするため、バンドルの更新を実行すると最新バージョンが得られ、secoundは現時点でバージョン3.0.0.1のrubygemsからgemをロードします。(2日経過)
tbraun89 2013

0

私は実際にこれを簡単に回避する方法があり、それを機能させる方法について頭を悩ませていました。ははは!

さて、最初に私はBootstrap(コンパイルされたcssおよびjsバージョン)をダウンロードしました。

次に、すべてのブートストラップcssファイルをに貼り付けましたapp/assets/stylesheets/

そして、すべてのブートストラップjsファイルをに貼り付けましたapp/assets/javascripts/

ページとワラをリロードしました!RoRにブートストラップを追加しました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.