2012-06-19 4 views
5

アセットパイプラインを何ヶ月もうまく使用しています。 今私はいくつかの私のJSファイルを非同期にロードしたいと思います(yepnopeライブラリを使用して)。 config.assets.debugfalseの場合はうまく動作します。Rails/Assetsパイプライン:マニフェストに含まれるアセットを動的にリストする

しかし、(config.assets.debugは通常trueある)開発モードでは、私にとって最良のオプションは、動的に私のマニフェストに含まれるすべてのjsファイルのリストを取得することです(私は2つのマニフェストだ:application.jsとexternals.jsを)非同期読み込みのためにそれらをyepnopeに与えます。

どうすればいいですか?

答えて

8

は最後に答えを見つけて、私は

# given a list of Sprockets manifests, returns a flattened array of dependency paths 
def paths_for_manifests(manifests = []) 
    manifests.map do |manifest| 
    Rails.application.assets[manifest].dependencies.map{|d| "/assets/#{d.logical_path}"} 
    end.flatten 
end 

(資産のコンパイル時に目に見えるヘルパーメソッドを宣言する方法を確認するためにthisを読んで)このヘルパーを作成し、私はこの(JS/CoffeeScriptのファイルから)のようにそれを使用します。

paths = <%= paths_for_manifests(%w(externals.js application.js)) %> 
関連する問題