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 w config.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> : Dyrektywa require działa podobnie jak własna require 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 do path/* ponieważ nie podąża za zagnieżdżonymi katalogami.
  • require_tree <path> : wymaga wszystkich zagnieżdżonych plików w katalogu. Jego globalnym odpowiednikiem jest path/**/* .
  • require_self : powoduje wstawienie treści bieżącego pliku przed kolejnymi dyrektywami require . 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> : Pozwala depend_on <path> zależność od pliku bez depend_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:

  1. Serwer działający w trybie programowania automatycznie wstępnie przetwarza i przygotowuje zasoby w locie.

  2. 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



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow