5

アセットパイプラインを数か月間使用しています。ここで、JSファイルの一部を非同期でロードしたいと思います(yepnopeライブラリを使用)。である場合にうまく機能しconfig.assets.debugますfalse

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

そうするためのアイデアはありますか?

4

1 に答える 1

9

ついに答えが見つかりました。私はこのヘルパーを作成しました(アセットのコンパイル中に表示されるヘルパーメソッドを宣言する方法については、これをお読みください)

# 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

そして私はそれを次のように使用します(JS / CoffeeScriptファイルから):

paths = <%= paths_for_manifests(%w(externals.js application.js)) %>
于 2012-06-19T15:07:40.343 に答える