Ruby on Rails
Tillgångsrörledning
Sök…
Introduktion
Tillgångsrörledningen ger ett ramverk för att sammanfoga och förminska eller komprimera JavaScript- och CSS-tillgångar. Det ger också möjligheten att skriva dessa tillgångar på andra språk och förprocessorer som CoffeeScript, Sass och ERB. Det gör att tillgångar i din applikation automatiskt kan kombineras med tillgångar från andra ädelstenar. Till exempel innehåller jquery-rails en kopia av jquery.js och aktiverar AJAX-funktioner i Rails.
Rake uppgifter
Som standard levereras sprockets-rails
med följande rake-uppgifter:
-
assets:clean[keep]
: Ta bort gamla sammanställda tillgångar -
assets:clobber
: Ta bort sammanställda tillgångar -
assets:environment
: Ladda tillgångar sammanställa miljö -
assets:precompile
: Samla alla tillgångar somconfig.assets.precompile
iconfig.assets.precompile
Manifestfiler och direktiv
I assets
( config/initializers/assets.rb
) finns några filer som uttryckligen är definierade för att förkompileras.
# 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 )
I det här exemplet är application.coffee
och application.scss
så kallade 'Manifest Files'. Dessa filer bör användas för att inkludera andra JavaScript- eller CSS-tillgångar. Följande kommando är tillgängliga:
-
require <path>
: Denrequire
direktivet liknande funktioner Ruby egenrequire
. Det ger ett sätt att förklara ett beroende av en fil i din sökväg och säkerställer att den bara laddas en gång innan källfilen. -
require_directory <path>
: kräver alla filer i en enda katalog. Det liknarpath/*
eftersom det inte följer kapslade kataloger. -
require_tree <path>
: kräver alla kapslade filer i en katalog. Dess globala ekvivalent ärpath/**/*
. -
require_self
: gör att filen i den aktuella filen infogas innan några efterföljanderequire
direktiv. Användbart i CSS-filer, där det är vanligt att indexfilen innehåller globala stilar som måste definieras innan andra beroenden laddas. -
stub <path>
: ta bort en fil från att inkluderas -
depend_on <path>
: Tillåter dig att ange ett beroende av en fil utan att inkludera den. Detta används för cachningsändamål. Alla ändringar som görs i beroendefilen kommer att ogiltiga källfilens cache.
En application.scss
fil kan se ut:
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
Ett annat exempel är application.coffee
filen. Här med inklusive jquery
och Turbolinks
:
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
Om du inte använder CoffeeScript, utan vanligt JavaScript, skulle syntaxen vara:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
Grundläggande användning
Det finns två grundläggande sätt som tillgångsrörledningen används:
När du kör en server i utvecklingsläge bearbetar och förbereder den automatiskt dina tillgångar on-the-fly.
I produktionsläge använder du förmodligen det för att förbereda, versionera och komprimera och sammanställa dina tillgångar. Du kan göra det genom att köra följande kommando:
bundle exec rake assets:precompile