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>
: Dyrektywarequire
działa podobnie jak własnarequire
Ruby. 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