JavaScriptRailsでは、app/assets/以下に各種JavaScriptやCSSなどを配置しますが、巷のJavaScriptライブラリには、JavaScriptとCSSと画像がセットになっているケースがしばしばあります。この時、特に厄介なのがCSSと画像です。CSS内で背景画像が相対URLで指定されていると相対位置を変えることができないので、位置関係に気を使わなければなりません(JavaScriptがimgを出力するような場合も同様*1)。いうわけで、どう配置するのが良いか考察してみました(Rails3.1以降対象*2)。"/app/assets/"以下にバラバラに配置するまず考えられるのは、非常に愚直ですが、JavaScript・CSS・画像をそれぞれ、/app/assets/javascripts//app/assets/stylesheets//app/assets/images/以下に配置する方法です。アセットパイプライン)、stylesheets以下のCSSとimages以下の画像の位置関係に注意すれば、基本的には問題ないと思います。必要であればapplication.jsにrequireを追記すれば良さそうです。個人的には、1つのライブラリのセットがバラバラに配置されるのは、保守の観点から見て、ちょっとなと思わざるを得ません...。"/public/"以下にまとめて配置する単純明快な方法ですが、上記のバラバラになる問題を解決できます。選択肢の1つとしては十分有りだと思いますが、アセットパイプラインの管轄外になることは意識しておいた方が良さそうです。"/lib/assets/"か"/vendor/assets/"以下にまとめて配置する。アセットパイプライン)。"/app/assets/"とは違い、直下のサブディレクトリが無視されることは無いようです。直下のサブディレクトリは無視されるようです。いうことで、この場合にはライブラリをまとめたディレクトリを作成するのがよさそうです。/vendor/assets/hogelib/piyo.jspiyo.cssimages/piyo.pngのような感じでしょうか。第4版の18章に、Railsの構造について書かれており、これによるとlibディレクトリには、モデル、ビュー、コントローラには当てはまらないアプリケーションコードを格納します。...ただし、大量のファイルを直接libディレクトリに平置きしなければならない、とは思わないで下さい。...libにはRubyのMVCに関係無い自作モジュールを配置しましょう、と記述されています。assetsに関する言及はありませんでした。vendorについてはサードパーティ製のコードの場所vendorディレクトリには、サードパーティ製のコードや素材を格納します。...また、vendor/assetsディレクトリには、サードパーティ製の素材(CSSなど)を格納します。"/vendor/assets/"以下に、自作のライブラリは"/lib/assets/"以下に配置するのが良さそうです。Pipelineについてかなり詳しく解説されており、アセットを追加できる場所は/app/assetsディレクトリだけではありません。/libの下にassetsディレクトリを作成した場合、そこに追加したすべてのファイルは、メインの/app/assetsディレクトリに置いたかのようにアクセス可能になります。これは/vendor/assetsディレクトリ下のすべてのファイルにも当てはまります。現在のアプリケーションに固有ではない汎用的なアセットがある場合、/libか/vendorの下のassetsディレクトリにそれらを置くのが理想でしょう。アプリケーションがjQueryプラグインを使用している場合、そのJavaScriptファイルは、別の人が管理することになるので/vendor/assetsディレクトリにを置くのが適しています。自分で管理はするがアプリケーションに固有ではないアセットについては、/libディレクトリに置くのがいいでしょう。RailsCastsという記述がありました。この方針が良いようです。filesなど)にも詳しく言及されているので、一度は目を通しておいた方が良さそうです。見られているようなので文章全体を推敲しました。*1:だけど、それはあまりよい設計では無い気がする。piplineを考慮するので*3:例えば、"/app/assets/hoge/huga/piyo"なら"/assets/huga/piyo"でアクセスできる。