Ruby on Rails
Asset Pipeline
Ricerca…
introduzione
La pipeline di asset fornisce un framework per concatenare e minimizzare o comprimere le risorse JavaScript e CSS. Aggiunge anche la possibilità di scrivere queste risorse in altre lingue e pre-processori come CoffeeScript, Sass e ERB. Permette di integrare automaticamente le risorse della tua applicazione con le risorse di altre gemme. Ad esempio, jquery-rails include una copia di jquery.js e abilita le funzionalità AJAX in Rails.
Rake tasks
Di default sprockets-rails
viene fornito con le seguenti attività di rake:
-
assets:clean[keep]
: rimuove i vecchi asset compilati -
assets:clobber
: rimuove le risorse compilate -
assets:environment
: carica l'ambiente di compilazione delle risorse -
assets:precompile
: compila tutte le risorse denominate inconfig.assets.precompile
File e direttive manifest
Nel assets
initalizer ( config/initializers/assets.rb
) ci sono alcuni file esplicitamente definiti per essere precompilati.
# 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 )
In questo esempio application.coffee
e application.scss
sono chiamati "file manifest". Questi file devono essere utilizzati per includere altre risorse JavaScript o CSS. Sono disponibili i seguenti comandi:
-
require <path>
: Ilrequire
funzioni direttive simili a Ruby propriorequire
. Fornisce un modo per dichiarare una dipendenza su un file nel percorso e garantisce che venga caricato solo una volta prima del file sorgente. -
require_directory <path>
: richiede tutti i file all'interno di una singola directory. È simile alpath/*
poiché non segue le directory annidate. -
require_tree <path>
: richiede tutti i file nidificati in una directory. Il suo equivalente globale èpath/**/*
. -
require_self
: fa sì che il corpo del file corrente venga inserito prima di ogni successivarequire
direttive. Utile nei file CSS, in cui è comune che il file di indice contenga stili globali che devono essere definiti prima di caricare altre dipendenze. -
stub <path>
: rimuove un file dall'essere incluso -
depend_on <path>
: consente di indicare una dipendenza su un file senza includerlo. Questo è usato per scopi di cache. Qualsiasi modifica apportata al file delle dipendenze invaliderà la cache del file sorgente.
Un file application.scss
potrebbe avere il seguente aspetto:
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
Un altro esempio è il file application.coffee
. Qui con inclusi jquery
e Turbolinks
:
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
Se non usi CoffeeScript, ma JavaScript semplice, la sintassi sarebbe:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
Uso di base
Esistono due modi fondamentali per utilizzare la pipeline degli asset:
Quando si esegue un server in modalità di sviluppo, esso pre-elabora e prepara automaticamente le risorse al volo.
In modalità produzione, probabilmente lo utilizzerai per pre-processare, versionizzare, comprimere e compilare le tue risorse. È possibile farlo eseguendo il seguente comando:
bundle exec rake assets:precompile