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 dans config.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 Ruby require . 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 est path/**/* .
  • require_self : provoque le corps du fichier en cours à insérer avant toute modification ultérieure require 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:

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

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



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow