2012-01-25 11 views
53

Przesyłam aplikację do Rails 3.1 (teraz do wersji 3.2) i oglądałem Railscast on the asset pipeline. Przeniosłem wszystkie pliki wtyczek jQuery firm trzecich do katalogu/vendor/assets/javascripts /. W moich /app/assets/javascripts/application.js mam następujące:Potok zasobów Railsowych: standardowy sposób na uwzględnienie wszystkich/vendor/assets/javascripts /?

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

zdałem sobie sprawę, wywołanie require_tree . ładuje tylko drzewo w/app/assets/JavaSkrypty/katalogu. (Czy to prawda?) Jaki jest najlepszy sposób dołączania wszystkich "javascripts" dostawcy? (Nie martwię się o zamawianie w tym momencie.) Oczywiście mógłbym wymagać od nich linii po linii w /app/assets/javascripts/application.js. Moja druga myśl była do tworzenia /vendor/assets/javascripts/vendor_javascripts.js z następujących czynności:

//= require_tree . 

a potem w /app/assets/javascripts/application.js dodać następujące:

//= require vendor_javascripts 

Wydaje się to trochę niezgrabne. Czy istnieje lepszy sposób automatycznego włączania wszystkich "javascripts" "dostawcy" (i/lub "lib")?

PS. Widziałem this about index.js files, ale potencjalnie mógłbym skończyć z wieloma plikami o nazwie index.js, prawda? Aha, i próbowałem restartować mój serwer przez cały czas.

Odpowiedz

72

Można dodać coś takiego w pliku app/assets/javascripts/application.js obejmować wszystkie javascripts oferenta:

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

Zapomniałem o całej ścieżce względnej :) Dziękuję, działa świetnie! – robertwbradford

+0

Pracowałem także dla mnie, dzięki! –

+11

Właściwie, myślę, że sugerowane podejście PO jest mniej niezręczne. – kizzx2

21

Wiem, że to stare pytanie, ale można utworzyć plik manifestu na/aktywa/JavaScript folderze VENDER :

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

iw was application.js:

//= require my_jquery_plugins/manifest.js 

I f używasz Rails 4, nazwa manifest.js jak index.js iw swoim application.js:

//= require my_jquery_plugins 

To mniej hacky niż opisana ścieżka względna.