2012-06-19 13 views
5

Ich verwende die Asset-Pipeline seit Monaten erfolgreich. Jetzt möchte ich einige meiner JS-Dateien asynchron laden (mit Hilfe der Yepnope-Bibliothek). Es funktioniert gut, wenn config.assets.debugfalse ist.Rails/Assets-Pipeline: Dynamische Auflistung von Assets, die in einem Manifest enthalten sind

Aber im Entwicklungsmodus (wo config.assets.debug in der Regel true ist), ist die beste Option für mich dynamisch eine Liste erhalten aller js Dateien in meinem Manifest enthielten sein würde (ich habe 2 Manifeste: application.js und externals.js) um sie für asynchrone Ladevorgänge an Yepnope zu übergeben.

Irgendeine Idee, dies zu tun?

Antwort

8

fand schließlich die Antwort, ich diese Helfer erstellt (lesen this zu sehen, wie Helfer Methoden sichtbar bei Asset-Kompilation zu erklären)

# 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 

und ich verwende es wie folgt (von JS/Coffeescript-Datei):

paths = <%= paths_for_manifests(%w(externals.js application.js)) %> 
Verwandte Themen