Pipeline di risorse in Rails 3.1.0

La pipeline delle risorse fornisce un framework per concatenare e minimizzare o comprimere le risorse JavaScript e CSS. Aggiunge anche la possibilità di scrivere queste risorse in altri linguaggi come CoffeeScript, Sass ed ERB. In Rails 3.1, la pipeline delle risorse ferroviarie è abilitata per impostazione predefinita. Può essere disabilitato in config/application.rb inserendo questa riga all'interno della definizione della classe dell'applicazione:

config.assets.enabled = falso

possiamo anche disabilitare la pipeline degli asset durante la creazione di una nuova applicazione passando l'opzione —skip-sprockets.

rotaie nuovo nome app –skip-sprockets

Caratteristiche della pipeline di risorse:
1.Concatenare le risorse

Questa funzionalità è importante in un ambiente di produzione, perché può ridurre il numero di richieste che un browser deve effettuare per eseguire il rendering di una pagina web. I browser Web hanno un numero limitato di richieste che possono effettuare in parallelo, quindi un numero inferiore di richieste può significare un caricamento più rapido dell'applicazione.

Rotaie 2.x ha introdotto la possibilità di concatenare risorse JavaScript e CSS inserendo :cache => true alla fine dei metodi javascript_include_tag e stylesheet_link_tag. Ma questa tecnica presenta alcune limitazioni. Ad esempio, non può generare le cache in anticipo e non è in grado di includere in modo trasparente risorse fornite da librerie di terze parti.

2.Minimizzazione o compressione delle risorse

Per i file CSS, la compressione viene eseguita rimuovendo spazi bianchi e commenti. Per JavaScript è possibile applicare processi più complessi. possiamo scegliere da una serie di opzioni integrate o specificarne una nostra.

3. Consente di codificare le risorse tramite un linguaggio di livello superiore, con la precompilazione fino alle risorse effettive. I linguaggi supportati includono Sass per CSS, CoffeeScript per JavaScript ed ERB per entrambi per impostazione predefinita. Nelle versioni precedenti della pipeline delle risorse di Rails, tutte le risorse si trovano in sottodirectory pubbliche come immagini, javascript e fogli di stile.

Con la pipeline delle risorse, la posizione preferita per queste risorse è ora la directory app/assets. I file in questa directory sono serviti dal middleware Sprockets incluso nel gem sprockets. Le risorse possono comunque essere inserite nella gerarchia pubblica. Eventuali risorse pubbliche verranno servite come file statici dall'applicazione o dal server Web. dovremmo usare app/risorse per i file che devono essere sottoposti ad una pre-elaborazione prima di essere serviti.

In produzione, Rails precompila questi file in public/assets per impostazione predefinita. Le copie precompilate vengono quindi servite come risorse statiche dal server web. I file nell'app/risorse non vengono mai serviti direttamente in produzione.

Quando generiamo uno scaffold o un controller, Rails genera anche un file JavaScript (o un file CoffeeScript se la gem coffee-rails è nel Gemfile) e un file Cascading Style Sheet (o un file SCSS se sass-rails è nel Gemfile) per quel controllore.

Organizzazione delle risorse:

La più grande differenza pratica tra le app Rails 3.0 e Rails 3.1 è una modifica nella posizione dei file di asset come immagini, fogli di stile e file JavaScript. Nelle versioni precedenti di Rails asset pipeline, questi file risiedevano tutti nella directory public/:

pubblico/immagini/

public/fogli di stile/

pubblico/javascript/

In Rails 3.1 e Rails 3.2.3 la posizione di questi file varia a seconda che siano creati da noi o provengano da un fornitore esterno. In questo caso i file risiedono nella directory app/assets:

app/risorse/immagini/

app/risorse/fogli di stile/

app/risorse/javascript/

Nel caso di codice o immagini di fornitori esterni, utilizziamo la directory fornitore/asset:

fornitore/risorse/immagini/

fornitore/risorse/fogli di stile/

fornitore/risorse/javascript/

File manifesti

Si tratta di semplici file js o css contenenti processori di direttive, righe di commento seguite da un =

// …

//= richiede jquery

//= richiede jquery_ujs

//= albero_richiesta .

O:

/* …

*= richiede_se stesso

*= albero_richiesta .

Questi file manifest fanno riferimento e includono altre risorse da cui dipendono. require_directory e require_tree ci consentono di richiedere intere directory e i relativi figli, require_self include anche qualsiasi js o css nel file manifest stesso.

Mettiti in contatto con noi.

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian