2011-08-06 9 views
7

Eksperymentuję z Rails 3.1, który wykorzystuje Sprokets 2.0 jako "potok zasobów" i próbuje skonfigurować bibliotekę CDN w trakcie produkcji, ale lokalny plik hostowany dla rozwoju.Używanie hostowanych przez CDN bibliotek JS do produkcji w Rails 3.1

znaczy w rozwoju: jquery.js są ładowane jako część application.js

ale w produkcji: http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js załadowano zamian.

Dodatkowe pytanie: jakikolwiek powód, dla którego nie powinienem tego robić?

+0

robię to samo w moich projektach :) –

+0

+1 dla robi to dobrze. Właściwie to stworzyłem projekt około pół roku temu, który to wspierał, umieszczając wywołanie 'use_remote' wewnątrz pliku docelowego. Umożliwiło to automatyczne rozwiązywanie zależności wraz z wykorzystaniem skryptów hostowanych przez CDN. Możesz sprawdzić projekt pod kątem niektórych pomysłów - javascripto.org. Przestałem pracować nad tym projektem od czasu wprowadzenia potoku aktywów, ale uznałem, że jest to istotne. Mam nadzieję, że potok zasobów będzie obsługiwał coś takiego. Chciałbym również zobaczyć coś w rodzaju mojej koncepcji pakietów. –

+1

W jaki sposób Rails 3.1 wykorzystał lokalnie dołączoną jQuery do programowania i CDN hostowany w produkcji? Robiłem to w 3.0, ale nie wiem jak to zrobić, gdy potok zasobów jest włączony. – Roman

Odpowiedz

1

Nie ma powodu, aby tego nie robić. Celem CDN firmy Google jest to, że gdy wiele różnych stron korzysta z tego samego pliku CDN, istnieje szansa, że ​​zostanie on już zbuforowany przez przeglądarkę lub gdzieś indziej. Cały punkt rurociągu polega na zrobieniu tego samego - kompresji + pakietu + dalekosiężnych nagłówków.

Jedynym powodem, dla którego nie należy go używać, jest to, że CDN jest daleko i kilka witryn, z których korzystają odwiedzający, również korzysta z CDN.

W moim przypadku znajduję się w NZ, a kilka lokalnych witryn z jakąkolwiek notatką korzysta z CDN. Powoduje to wysokie pierwsze kary dla osób odwiedzających naszą witrynę (nikt nie ma pliku podczas przeglądania innej witryny lokalnej). Zdecydowałem się włączyć jquery do pakietu produkcyjnego, aby uniknąć żądań i czasu poświęconego na ładowanie (około 700mS od NZ).

YMMV!