特定のjavascriptファイル(modernizr)を個別にロードしたいので、パイプラインから除外したいと思います。
最初にModernizrをロードし、最後にJavaScriptの残りの部分を連結したいと思います。
3.1のアセットパイプラインでrequireの反対を行う方法はありますか?すなわち。除外しますか?
前もって感謝します。
アダム。
変更してスプロケットの機能を維持することにしました
//= require_tree
に
//= require_directory .
これにより、スプロケットは同じディレクトリ内のファイルを自動ロードし続けますが、それ以上のフォルダにはロードしません。
これにより、Modernizr.jsをassets/javascripts/topフォルダーに移動し、次のコマンドを使用して手動で上部にロードすることができました。
<%= javascript_include_tag "top/modernizr" %>
移動します
<%= javascript_include_tag "application" %>
Application.html.erbファイルの下部(本文の終了タグの上)
これは古い質問だと思いますが、先週Googleからここに送られてきたので、時代遅れの質問ではありません。私が他の場所で見つけた答えは スプロケットの「スタブ」ディレクティブ でした。だから何かのような
//= require-tree .
//= stub Modernizr
これにより、Modernizr.jsがバンドルされたアセットから除外されます。元の回答と同様に、独自のタグを含めることができます。
Sprocketsの変更ログには、「スタブ」が2012年1月に追加されたため、この質問に最初に回答した時点では利用できなかったと記載されていますが、今は良い回答だと思います。
これは、config/environment/production.rbファイルに移動し、次の行を追加することではるかに簡単に実行できます。
config.assets.precompile += %w( modernizr.js )
次に、アセットをプリコンパイルすると、モダナイザーには、頭の中で使用できる独自の個別のファイルがあります。
これらの答えは時代遅れです。 active_admin.css.scss
をapp/assets/stylesheets
からvendor/assets/stylesheets
に移動するだけです。
active_admin.js.coffee
でも同じことを行います(app/assets/javascripts
からvendor/assets/javascripts
に移動します)。
その後、必要に応じてアセットが読み込まれ、active_adminに対応するためにapplications.js
を変更する必要はありません。
この解決策は この問題 で説明されています。お役に立てれば。