質問: railsでbootstrapを使用する際の手順について調べたのですが gemなしリファレンス gemありリファレンス どちらともrailsでbootstrapを導入する方法についてですが、このようにgemを使う方法とgemを使わず`vendor/`以下にテンプレートを置く方法がございますが、何が違うのでしょうか? また思ったのですが、`app/assets/`以下と`vendor/`以下にテンプレートファイルを置くことによる違いがよく分かりません。結局bootstrapはcssとjsのコードの塊という認識なので、表示される結果が全く変わらない気がするのですが、、、読み込まれる優先順位等があるのでしょうか?宜しくお願い致します。
回答: 読まれる順番がもしかしたら違うかもしれませんが、 手元だけみると、結局同じようなもの=動作としてはほとんど違わないのです。 動作ではなくて、管理の手間が違います。 バージョン管理の観点 bootstrapのバージョンが上がった時に、新しいバージョンを自分のプロジェクトに取り込みたいとします。 vendorに置く方法だと、一度置いたファイルを削除して、もう一度設置しなおす...といったようなことが必要になります。 1か所に放り込むだけでOKなら良いのですが、これはここにおいて、あれはこっちに置いて...とやっていると、たぶん辛いと思います。 gemを利用する方法なら、単にbundle update bootstrap-sassとするだけで、バージョンが上がるはずです。バージョンアップの時に何か操作が必要になれば、gemが何かメッセージを出してくれたりといったことが期待できます。(ただし、bootstrap自体のほかに、bootstrap-sassも更新されないと、最新版は取り込めません。やや欠点。) 後者の方が管理が楽です。 ライセンス管理の観点 イマドキであれば、ソースコードはgit等で管理していると思います。 vendorに置く方法だとこれはライブラリの**コピー**を丸ごと管理することになります。この場合、利用しているライブラリのライセンスによっては、ソースコードのやり取りに制限が出てしまうことがあります。 ※ たとえば、「再配布するときは著作者名とライセンスを目立つ場所に置く」という条項が付いているライセンスが存在します。あるいは、有料ライセンスのファイルをそのまま上げてしまうとかは、問題がありますよね。 gemを利用する方法なら、手元で管理する内容が、「boostrap-sassというライブラリの名前」と「それをどこで読み込むかの指定」だけで、 「boostrap-sassというライブラリのファイル自体」を追加しているわけではないので、上記の問題が起こりづらくなります。(厳密には、ライセンス自体はきちんと把握する必要はあります。「混ぜる」ことで面倒が起こるライセンスがあるのです。) 後者の方が、制限が緩いです。 また、ソースコード管理、という点では「必要のないファイルを管理しない」ことは重要です。