Rails v 5.2.2.
・app/assetsはアプリ全体として共通管理するもの(app/assets/javascripts/application.jsとか)やアプリ固有のもの(app/assets/javascripts/posts.coffeeとか)を置く
・lib/assetsは自作コードを置く(特定のviewだけxxのファイルを読み込みたい、みたいな時はここに置いて読み込む?ここ以外に最適そうなとこがない)
・vendor/assetsはサードパーティ(外部ベンダーが提供したもの、bootstrapとか)を置く
---Railsガイドからの引用---
app/assetsは、カスタム画像ファイル、JavaScript、スタイルシートなど、アプリケーション自身が保有するアセットの置き場所です。 lib/assetsは、1つのアプリケーションの範疇に収まらないライブラリのコードや、複数のアプリケーションで共有されるライブラリのコードを置く場所です。 vendor/assetsは、JavaScriptプラグインやCSSフレームワークなど、外部の団体などによって所有されているアセットの置き場所です。
■外部ベンダー提供のjs, CSSを読み込む場合の例
外部ベンダーの bootstrap-tagsinput.min.js と bootstrap-tagsinput.cssを読み込みたいとする。
1.vendor/assets/javascripts/bootstrap-tagsinput.min.js と vendor/assets/stylesheets/bootstrap-tagsinput.css にファイル置く
2.config/initializers/assets.rb に以下を定義する
vendor/assets/配下にパスを通す。assetsは記述しないこと。
Rails.application.config.assets.paths << Rails.root.join('vendor', 'stylesheets')
Rails.application.config.assets.paths << Rails.root.join('vendor', 'javascripts')
読み込むファイルを指定する。ワイルドカードなども使用可能。
Rails.application.config.assets.precompile += [
'bootstrap-tagsinput.min.js',
'bootstrap-tagsinput.css'
]
3.railsを再起動する
4.読み込みたいviewで、stylesheet_link_tag と javascript_include_tag を使って定義したファイルを読み込む