29

特定のjavascriptファイル(modernizr)を個別にロードしたいので、パイプラインから除外したいと思います。

最初にModernizrをロードし、最後に連結された残りのJavaScriptをロードしたいと思います。

3.1のアセットパイプラインでrequireの反対を行う方法はありますか?すなわち。除外しますか?

前もって感謝します。

アダム。

4

4 に答える 4

56

変更してスプロケットの機能を維持することにしました

//= require_tree

//= require_directory .

これにより、スプロケットは同じディレクトリ内のファイルを自動ロードし続けますが、それ以上のフォルダにはロードしません。

これにより、Modernizr.jsをassets / javascripts / topフォルダーに移動し、次のコマンドを使用して手動で上部にロードすることができました。

<%= javascript_include_tag "top/modernizr" %>

移動します

<%= javascript_include_tag "application" %>

application.html.erbファイルの下部(本文の終了タグの上)

于 2011-11-08T23:29:50.553 に答える
23

これは古い質問だと思いますが、先週Googleからここに送られてきたので、時代遅れの質問ではありません。私が他の場所で見つけた答えは、スプロケットの「スタブ」ディレクティブでした。だから何かのような

//= require-tree .
//= stub Modernizr

これにより、Modernizr.jsがバンドルされたアセットから除外されます。元の回答と同様に、独自のタグを含めることができます。

Sprocketsの変更ログには、「スタブ」が2012年1月に追加されたため、この質問に最初に回答した時点では利用できなかったと書かれていますが、今は良い答えだと思います。

于 2014-11-24T02:00:55.217 に答える
15

これは、config / environment / Production.rbファイルに移動し、次の行を追加することで、はるかに簡単に実行できます。

config.assets.precompile += %w( modernizr.js )

次に、アセットをプリコンパイルすると、モダナイザーには、頭の中で使用できる独自の個別のファイルがあります。

于 2011-09-16T05:47:08.050 に答える
2

これらの答えは時代遅れです。active_admin.css.scssからapp/assets/stylesheetsに移動するだけvendor/assets/stylesheetsです。

(からにactive_admin.js.coffee移動)でも同じことを行います。app/assets/javascriptsvendor/assets/javascripts

applications.jsその後、必要に応じてアセットが読み込まれ、 active_adminに対応するために変更を加える必要はありません。

この解決策は、この号で説明されています。お役に立てれば。

于 2013-12-17T21:37:45.747 に答える