Ruby on Rails
Pipeline d'actifs
Recherche…
Introduction
Le pipeline d'actifs fournit une structure pour concaténer et réduire ou compresser les actifs JavaScript et CSS. Il ajoute également la possibilité d’écrire ces ressources dans d’autres langues et dans des pré-processeurs tels que CoffeeScript, Sass et ERB. Il permet de combiner automatiquement les actifs de votre application avec les actifs d'autres gemmes. Par exemple, jquery-rails inclut une copie de jquery.js et active les fonctionnalités AJAX dans Rails.
Tâches de ratissage
Par défaut, les sprockets-rails
sont livrés avec les tâches suivantes:
-
assets:clean[keep]
: supprimer les anciens éléments compilés -
assets:clobber
: supprimer les actifs compilés -
assets:environment
: environnement de compilation des actifs de chargement -
assets:precompile
: compile tous les actifs nommés dansconfig.assets.precompile
Fichiers manifestes et directives
Dans l'initalizer des assets
( config/initializers/assets.rb
), il y a quelques fichiers explicitement définis pour être précompilés.
# 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 )
Dans cet exemple, les fichiers application.coffee
et application.scss
sont appelés "fichiers manifestes". Ces fichiers doivent être utilisés pour inclure d'autres ressources JavaScript ou CSS. Les commandes suivantes sont disponibles:
-
require <path>
: L'require
des fonctions directive similaires à son propre Rubyrequire
. Il fournit un moyen de déclarer une dépendance sur un fichier dans votre chemin et garantit qu'il est chargé une seule fois avant le fichier source. -
require_directory <path>
: requiert tous les fichiers d'un même répertoire. Il est similaire àpath/*
car il ne suit pas les répertoires imbriqués. -
require_tree <path>
: nécessite tous les fichiers imbriqués dans un répertoire. Son équivalent en glob estpath/**/*
. -
require_self
: provoque le corps du fichier en cours à insérer avant toute modification ultérieurerequire
les directives. Utile dans les fichiers CSS, où il est courant que le fichier d'index contienne des styles globaux devant être définis avant le chargement des autres dépendances. -
stub <path>
: supprime un fichier de l'inclusion -
depend_on <path>
: vous permet d'affirmer une dépendance sur un fichier sans l'inclure. Ceci est utilisé à des fins de mise en cache. Toute modification apportée au fichier de dépendance invalidera le cache du fichier source.
Un fichier application.scss
pourrait ressembler à:
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
Un autre exemple est le fichier application.coffee
. Ici avec y compris jquery
et Turbolinks
:
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
Si vous n'utilisez pas CoffeeScript, mais que JavaScript est clair, la syntaxe serait la suivante:
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
Utilisation de base
Le pipeline d’actifs est utilisé de deux manières:
Lors de l'exécution d'un serveur en mode de développement, il pré-traite automatiquement et prépare vos actifs à la volée.
En mode production, vous l'utiliserez probablement pour pré-traiter, dimensionner, compresser et compiler vos actifs. Vous pouvez le faire en exécutant la commande suivante:
bundle exec rake assets:precompile