2012-01-25 16 views
53

Bir uygulamayı Rails 3.1'e (ve şimdi 3.2'ye) geçiriyorum ve Railscast on the asset pipeline'u izledim. Tüm üçüncü taraf jquery eklenti dosyalarını/vendor/assets/javascripts/dizinine taşıdım. Rails varlık boru hattı: Tüm/satıcı/varlıkları/javascriptleri/dahil etmenin standart yolu /?

//= require jquery 
//= require jquery_ujs 
//= require_tree . 
//= require_self 

Ben require_tree . arama yalnızca/app/varlıklar/javascript/dizin için ağaç yükler fark: my /app/assets/javascripts/application.js ben şu var. (Bu doğru mu?) tüm "satıcı" javascripts dahil etmek için en iyi yolu nedir? (Bu noktada sipariş vermek konusunda endişelenmiyorum.) Tabii ki, onlara /app/assets/javascripts/application.js adresinde sıraya girebilirim. eklemek aşağıdaki /app/assets/javascripts/application.js sonra

//= require_tree . 

Ve:

//= require vendor_javascripts 
Benim diğer düşünce aşağıdaki /vendor/assets/javascripts/vendor_javascripts.js yaratmaktı

Bu biraz rahatsız olsa da görünüyor. Tüm "satıcı" (ve/veya "lib") javascriptlerini otomatik olarak eklemenin daha iyi bir yolu var mı?

PS. this about index.js files'u gördüm, ancak potansiyel olarak index.js adlı birden çok dosya ile sonuçlanabilir miyim? Oh, ve sunucumu yeniden başlatmayı denedim.

cevap

72

Bütün satıcı Javascript'leri içerecek şekilde app/assets/javascripts/application.js dosyada böyle bir şey ekleyebilirsiniz:

//= require_tree ../../../vendor/assets/javascripts/. 
+1

Tüm akraba yolları hakkında unuttum :) Teşekkür ederim, harika çalışıyor! – robertwbradford

+0

Benim için de çalıştım, teşekkürler! –

+11

Aslında, OP'nin önerdiği yaklaşımın daha az sorunlu olduğunu düşünüyorum. – kizzx2

21

Ben eski bir soru biliyorum ama işportacı/varlık/javascript klasörde bildiri dosyası oluşturabilir : sende

#vendor/assets/javascripts/my_jquery_plugins/manifest.js 
# require_tree . 

Ve application.js:

//= require my_jquery_plugins/manifest.js 

ben Eğer Rails 4 kullandığınız f, manifest.jsindex.js olarak ve application.js yılında isim: O göreli yolu tarif daha az hacky var

//= require my_jquery_plugins 

.

İlgili konular