2012-06-19 12 views
5

bildirgesinde yer alan varlıkları dinamik olarak listeleme Varlıkları boru hattını aylardır başarıyla kullanıyorum. Şimdi bazı JS dosyalarımı eşzamansız olarak yüklemek istiyorum (yepnope kütüphanesi kullanarak). config.assets.debugfalse olduğunda iyi çalışır. Rails/Assets boruhattı:

Ama (config.assets.debug genellikle true olan) geliştirme modunda benim için en iyi seçenek dinamik dosyalar benim manifestolarına dahil tüm js listesini almak olacaktır içinde

(I 2 manifestoyu var: application.js ve externals.js) async yüklemesi için yepnope vermek.

Böyle bir fikrin var mı?

cevap

8

Sonunda

# 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 

ve ben (bir JS/CoffeeScript dosyasından) bu gibi kullanmak (varlık derleme sırasında görünür yardımcı yöntemler bildirmesine nasıl olduğunu görmek için this okuyun) Bu yardımcı yarattı cevabını buldu:

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