質問: 絶対的な答えはないのかもしれませんが、質問があります。 | 質問 | 内容 | | --- | --- | | 1. | lib と app/lib の違い、使用用途の違いは何でしょうか | | 2. | 例えば、Bootstrap.min.js , Bootstrap.min.cssはどこに配置するべきでしょうか | 質問2について、現在の配置場所は、 | 質問 | 内容 | | --- | --- | | Bootstrap.min.js | app/assets/javascripts/shared | | Bootstrap.min.css | app/assets/stylesheets/shared | (...このままでも一応致命的な問題はないとは思うのですが...。) 宜しくお願いします。
回答: 絶対的な答えはありません cssとjsの管理はRailsにとって永遠の課題であり バージョンによって、推奨がコロコロ変わります。 Rails5.1で最終的な決着を見せそうでしたが。 まだ変更の余地があり、変わることもありえます(公式)。 Rails3.1からsprocketsというgemが導入されており これの設定ファイルでjsやcssの呼び出しを管理しています。 が、Rails5からこの設定ファイルが変更になったりならなかったり (する予定だったがgemの対応が間に合わなかった) して色々カオスなことになっています。 ここまでが前提 で、とりあえず、読み込みの流れ。 assets-pipeline編 ================ 1. sprocketsが、指定されたフォルダを読み込む(デフォルトはlibに含まれているgemのcss.jsとassets以下) 2. application.js/.cssがフォルダから各ファイルを指定して読み込む 注 //= require_tree .は全て読み込む指定 3. assets-pipelineで必要なものはコンパイルするなどして、まとめて public assetsに出力 4. javascript_include_tag等でhtml.erbに webpacker編 ========== 1. yarn addを使って必要なライブラリをnode_modulesにインストール 2. app/javascript/packs 以下のjsでそれらを呼び出し,構造はフォルダを作るなどしてページごと?に管理(これも正解はない模様) 3. bin/webpacke(assets-pipelineでも自動実行される)で必要なものはコンパイルするなどして、まとめて public packsに出力 4. javascript_pack_tag等でhtml.erbに さえ押さえておけば、置く場所はわかりやすさ重視で、割とどこでもよく assets-pipelineとwebpackerで管理するのがRails流だと思います。