Rails 3.1アセットパイプラインマニフェストファイルはJavaScriptsをピックアップしません
-
26-10-2019 - |
質問
私はベンダー/アセット/javaScriptsにJavaScriptsのすべての混乱を持っています。私のアプリ/Assets/JavaScripts/Application.jsファイルには、指令があります。
//= require_tree .
これは、現在のApp/Assets/JavaScriptsディレクトリのみを参照し、LIB/ASSETSまたはベンダー/アセットではありませんか?
JavaScriptsを明示的に含めると、機能します。必要がない場合は、本当にやりたくないだけです。
Assets PipelineがApp Directory(lib and Vendor)の外部から資産を自動的に提供できるようにする私が欠けているものはありますか?
解決
require_treeは、application.jsファイルの下にある資産のみをプルします。
lib/assets
と vendor/assets
パイプラインのルックアップパスにすでに含まれています(このコードを参照してください).
2番目のマニフェストを使用して、これらのベンダーファイルを含めることができます。
行きます vendor/assets/javascripts
misc_vendor.jsというファイルを作成します
その内部では、require_treeディレクティブを入れます。
次に、アプリケーションからそのファイルを参照してください。JSマニフェスト:
require misc_vendor
ロード注文のために問題がある場合は、require_treeを使用する代わりに、必要な順序でベンダーファイルを手動で要求できます。
パイプラインへの変換の一環として、それは物事をきれいにする良い機会かもしれません! :-)
他のヒント
また、このような2番目のマニフェストなしでそれを行うことができます:
//= require_tree ../../../vendor/assets/javascripts/.
パスは、 'app/assets/javascripts/application.jsのマニフェストファイルに関連している必要があります。
このようなapplication.rbファイルのパスを拡張する必要があります。
config.assets.paths << "#{Rails.root}/vendor/assets/some file name"