Ruby on Rails
Rurociąg zasobów
Szukaj…
Wprowadzenie
Potok potoku zapewnia strukturę do łączenia i minimalizowania lub kompresji zasobów JavaScript i CSS. Dodaje także możliwość pisania tych zasobów w innych językach i procesorów wstępnych, takich jak CoffeeScript, Sass i ERB. Umożliwia automatyczne łączenie zasobów w aplikacji z zasobami z innych klejnotów. Na przykład jquery-rails zawiera kopię pliku jquery.js i włącza funkcje AJAX w Railsach.
Zadania prowizji
Domyślnie sprockets-rails są dostarczane z następującymi zadaniami rake:
-
assets:clean[keep]: usuwa stare skompilowane zasoby -
assets:clobber: Usuń skompilowane zasoby -
assets:environment: Załaduj środowisko kompilacji zasobów -
assets:precompile: Skompiluj wszystkie zasoby wymienione wconfig.assets.precompile
Pliki manifestów i dyrektywy
W inicjalizatorze assets ( config/initializers/assets.rb ) znajduje się kilka plików wyraźnie zdefiniowanych do prekompilacji.
# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
W tym przykładzie application.coffee i application.scss są tak zwanymi „plikami manifestu”. Pliki te powinny być używane do dołączania innych zasobów JavaScript lub CSS. Dostępne są następujące polecenia:
-
require <path>: Dyrektywarequiredziała podobnie jak własnarequireRuby. Zapewnia sposób zadeklarowania zależności od pliku na twojej ścieżce i zapewnia, że zostanie załadowany tylko raz przed plikiem źródłowym. - wymagany_katalog
require_directory <path>: wymaga wszystkich plików w jednym katalogu. Jest podobny dopath/*ponieważ nie podąża za zagnieżdżonymi katalogami. -
require_tree <path>: wymaga wszystkich zagnieżdżonych plików w katalogu. Jego globalnym odpowiednikiem jestpath/**/*. -
require_self: powoduje wstawienie treści bieżącego pliku przed kolejnymi dyrektywamirequire. Przydatne w plikach CSS, w których często plik indeksu zawiera style globalne, które należy zdefiniować przed załadowaniem innych zależności. -
stub <path>: usuwa plik z dołączonego pliku -
depend_on <path>: Pozwaladepend_on <path>zależność od pliku bezdepend_on <path>go. Służy to do buforowania. Wszelkie zmiany wprowadzone w pliku zależności spowodują unieważnienie pamięci podręcznej pliku źródłowego.
Plik application.scss może wyglądać następująco:
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
Innym przykładem jest plik application.coffee . Tutaj wraz z jquery i Turbolinks :
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
Jeśli nie używasz CoffeeScript, ale zwykły JavaScript, składnia wyglądałaby następująco:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
Podstawowe użycie
Istnieją dwa podstawowe sposoby wykorzystania potoku zasobów:
Serwer działający w trybie programowania automatycznie wstępnie przetwarza i przygotowuje zasoby w locie.
W trybie produkcyjnym prawdopodobnie użyjesz go do wstępnego przetwarzania, wersjonowania oraz kompresji i kompilacji zasobów. Możesz to zrobić, uruchamiając następujące polecenie:
bundle exec rake assets:precompile