2012-06-19 47 views
5

Tôi đang sử dụng thành công đường dẫn nội dung trong nhiều tháng. Bây giờ tôi muốn tải một số tệp JS của tôi không đồng bộ (sử dụng thư viện yepnope). Nó hoạt động tốt khi config.assets.debugfalse.Đường ray/Đường dẫn nội dung: Tự động liệt kê các nội dung được bao gồm trong tệp kê khai

Nhưng ở chế độ phát triển (nơi config.assets.debug thường là true), tùy chọn tốt nhất cho tôi là tự động nhận danh sách tất cả các tệp js có trong tệp kê khai của tôi (tôi nhận 2 tệp kê khai: application.js và externals.js) để cung cấp cho họ yepnope để tải async.

Có ý tưởng nào để làm như vậy không?

Trả lời

8

Cuối cùng tìm thấy câu trả lời, tôi đã tạo helper này (đọc this để xem cách khai báo phương pháp helper có thể nhìn thấy trong biên soạn tài sản)

# 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 

và tôi sử dụng nó như thế này (từ một tập tin JS/CoffeeScript):

paths = <%= paths_for_manifests(%w(externals.js application.js)) %> 
Các vấn đề liên quan