2012-03-30 7 views
9

W mulitple poglądów jestem w tym zewnętrzne biblioteki javascript z tym HTML:Rails 3.1 - Jak uwzględnić zewnętrzne biblioteki javascript w dostawcy/assets/javascript?

<script type="text/javascript" 
     src="http://static.jstree.com/v.1.0pre/jquery.jstree.js"> 
</script> 

Czytając przez Rails 3.1 dokumentacji aktywami Pipeline i dyskusji mam wrażenie, że vendor/assets/javascripts to miejsce było to, że plik powinien się odwoływać. Zgaduję, że mogę pobrać kopię pliku (jstree.js) i umieścić ją w tym katalogu. Chciałbym jednak, aby został załadowany z witryny projektu zamiast tworzenia jego lokalnej kopii.

Co mam umieścić w dostawcy/zasobach/javascripts, aby pobrać kopię pliku jstree.js ze zdalnego serwera? Czy mogę utworzyć plik .js z jakimś zdalnym kodem ładowania? Wydaje się, że wszystkie rodzaje podejść i/lub zamieszania, w jaki sposób najlepiej to zrobić (patrz długą listę odpowiedzi na to pytanie. How do I include a JavaScript file in another JavaScript file?)

Czy istnieje „Szyny Standard” konwencja/library/Proces robi to? Jestem neofitą javascript, więc proszę, bądźcie szczerzy, dzięki.

Odpowiedz

10

Nie, nie ma możliwości umieszczenia "odniesienia" do zdalnego pliku w folderze zasobów. Pobieramy kopię i umieszczamy w zasobach lub odwołujemy się do zdalnego pliku przy pomocy znacznika <script>.

Posiadanie kopii naprawdę nie jest złym pomysłem. Przynajmniej wiesz, że to działa, a plik się nie zmienił (chyba że sam go zmieniłeś). Po załadowaniu pliku zdalnego mogą wystąpić różnego rodzaju niespodzianki :)

+3

Dzięki. Chciałem mieć pewność, że niczego mi nie brakuje, a ty to potwierdziłeś. Nie całkiem zgadzam się, że lokalna kopia to dobry pomysł (z wyjątkiem produkcji). Biblioteki nauczyły się mieć "stabilne" wersje, które nigdy się nie zmieniają, więc nie jestem tym specjalnie zainteresowany. Jeśli Railsy wspierały system "referencyjny" (podobnie jak Gemfile), mogłem łatwiej utrzymywać różne biblioteki JS w dev/test/production. Nie musiałbym ręcznie pobierać/organizować plików i mogłem uniknąć nieporozumień. Byłoby bardzo łatwe do dev/test przeciwko nowej wersji zdalnej biblioteki. –

+2

Nie jestem pewien, czy zawsze dobrze jest przechowywać lokalnie wszystkie pliki JS. Korzystanie z usług stron trzecich, takich jak przyciski społecznościowe, może powodować ból serca podczas debugowania w przypadku zmiany usługi. –

+0

+1 dla Gemfile dla zdalnie zapisanych plików JS. @Don Może nawet zawierać zdalnie pobieranie na wdrożenie, ale lokalnie obsługując je za pomocą kół łańcuchowych. – Trip