web-dev-qa-db-ja.com

Rails Asset Pipeline:すべての/ vendor / assets / javascripts /?を含める標準的な方法

アプリをRails 3.1(そして3.2に移行))に移行し、 Railscast on the asset pipeline を見ました。すべてのサードパーティを移動しました/ vendor/assets/javascripts /ディレクトリへのjqueryプラグインファイル。/app/assets/javascripts/application.jsには次のものがあります。

//= require jquery
//= require jquery_ujs
//= require_tree .
//= require_self

require_tree .呼び出しは、/ app/assets/javascripts /ディレクトリのツリーのみをロードします。 (それは正しいですか?)「ベンダー」JavaScriptをall含める最良の方法は何ですか? (この時点で注文することは心配していません。)もちろん、/ app/assets/javascripts/application.jsで行ごとに要求することもできます。私の他の考えは、次を使用して/vendor/assets/javascripts/vendor_javascripts.jsを作成することでした。

//= require_tree .

そして、/ app/assets/javascripts/application.jsに以下を追加します:

//= require vendor_javascripts

しかし、これは少し不格好なようです。すべての「ベンダー」(および/または「lib」)javascriptを自動的に含めるより良い方法はありますか?

PS。 index.jsファイルについて を見ましたが、index.jsという名前の複数のファイルになる可能性がありますよね?ああ、サーバー全体を再起動してみました。

53
robertwbradford

app/assets/javascripts/application.jsファイルに次のようなものを追加して、すべてのベンダーのJavaScriptを含めることができます。

//= require_tree ../../../vendor/assets/javascripts/.
73
Dylan Markow

古い質問ですが、vender/assets/javascriptフォルダーにマニフェストファイルを作成できます。

 #vendor/assets/javascripts/my_jquery_plugins/manifest.js
 # require_tree .

そして、application.jsで:

 //= require my_jquery_plugins/manifest.js

Rails 4を使用している場合は、manifest.js なので index.jsおよびapplication.js

//= require my_jquery_plugins

記述されている相対パスよりもハッキーではありません。

21
lcguida