Comprendre le plugin Asset Pipeline

Ruby on Rails ou simplement Rails est un merveilleux framework d'application Web, écrit en Ruby. Il fournit des services pour la conception d'une page Web. Il a remporté les votes des geeks de la technologie pour ses services plus rapides en termes de développement d'un site Web en raison de ses fonctionnalités conviviales, de sa complexité réduite et améliorant ainsi son efficacité globale. L'une de ces fonctionnalités pour RoR est le pipeline d'actifs.

Le pipeline d'actifs est une fonctionnalité très puissante proposée par Rails, pour résoudre un large éventail de problèmes liés à la conception Web.

Il minimise les travaux manuels en compilant et en traitant toutes les feuilles de style, fichiers javascript, images, etc. autant que possible et se prépare à l'utilisation. Le pipeline d'actifs peut améliorer la qualité de l'application en termes de performances et de flexibilité.

Le pipeline d'actifs :

Le pipeline d'actifs fournit un cadre pour concaténer et réduire ou compresser les actifs JavaScript et CSS. Il ajoute également la possibilité d'écrire ces actifs dans d'autres langages et préprocesseurs tels que CoffeeScript, Sass et ERB.

Le pipeline d'actifs n'est techniquement plus une fonctionnalité essentielle de Rails 4, il a été extrait du framework dans le joyau sprockets-rails.

Le pipeline d'actifs est activé par défaut.

Nous pouvons désactiver le pipeline d'actifs lors de la création d'une nouvelle application en passant l'option –skip-sprockets.

rails le nouveau nom de l'application -skip-sprockets

Rails 4 ajoute automatiquement les gemmes sass-rails, coffee-rails et uglifier à votre Gemfile, qui sont utilisées par Sprockets pour la compression des actifs :

joyau 'sass-rails'

gemme 'uglifier'

joyau 'café-rails'

L'utilisation de l'option –skip-sprockets empêchera Rails 4 d'ajouter sass-rails et uglifier à Gemfile, donc si vous souhaitez ultérieurement activer le pipeline d'actifs, vous devrez ajouter ces gemmes à votre Gemfile. De plus, la création d'une application avec l'option –skip-sprockets générera un fichier config/application.rb légèrement différent, avec une instruction require pour le rail des pignons qui est commentée. Vous devrez supprimer l'opérateur de commentaire sur cette ligne pour activer ultérieurement le pipeline d'actifs :

# nécessite des « pignons/railtie »

Pour définir les méthodes de compression des actifs, définissez les options de configuration appropriées dans production.rb – config.assets.css_compressor pour votre CSS et config.assets.js_compressor pour votre JavaScript :

config.assets.css_compressor = :yui

config.assets.js_compressor = :uglifier

Comment utiliser le pipeline d'actifs :

Dans les versions précédentes de Rails, tous les actifs étaient situés dans des sous-répertoires publics tels que les images, les javascripts et les feuilles de style. Avec le pipeline d'actifs, l'emplacement privilégié pour ces actifs est désormais le répertoire app/assets. Les fichiers de ce répertoire sont servis par le middleware Sprockets.

Les actifs peuvent toujours être placés dans la hiérarchie publique. Tous les actifs sous public seront servis sous forme de fichiers statiques par l'application ou le serveur Web lorsque config.serve_static_files est défini sur true. Vous devez utiliser app/assets pour les fichiers qui doivent subir un prétraitement avant d'être servis.

En production, Rails précompile ces fichiers en public/assets par défaut. Les copies précompilées sont ensuite servies comme ressources statiques par le serveur Web. Les fichiers dans app/assets ne sont jamais servis directement en production.

Actifs spécifiques au contrôleur :

Lorsque vous générez un échafaudage ou un contrôleur, Rails génère également un fichier JavaScript (ou un fichier CoffeeScript si la gemme coffee-rails est dans le Gemfile) et un fichier de feuille de style en cascade (ou un fichier SCSS si sass-rails est dans le Gemfile) pour ce contrôleur. De plus, lors de la génération d'un échafaudage, Rails génère le fichier scaffolds.css (ou scaffolds.css.scss si sass-rails se trouve dans le Gemfile.)

Par exemple, si vous générez un ProjectsController, Rails ajoutera également un nouveau fichier dans app/assets/javascripts/projects.js.coffee et un autre dans app/assets/stylesheets/projects.css.scss. Par défaut, ces fichiers seront immédiatement prêts à être utilisés par votre application à l'aide de la directive require_tree. Voir Fichiers manifestes et directives pour plus de détails sur require_tree.

Vous pouvez également choisir d'inclure des feuilles de style et des fichiers JavaScript spécifiques au contrôleur uniquement dans leurs contrôleurs respectifs en utilisant les éléments suivants :

<%= javascript_include_tag params[:controller] %> ou <%= stylesheet_link_tag params[:controller] %>

Actifs de précompilation :

Rails est livré avec une tâche rake pour compiler les manifestes d'actifs et d'autres fichiers dans le pipeline.

Les actifs compilés sont écrits à l'emplacement spécifié dans config.assets.prefix. Par défaut, il s'agit du répertoire /assets.

Vous pouvez appeler cette tâche sur le serveur lors du déploiement pour créer des versions compilées de vos actifs directement sur le serveur. Voir la section suivante pour plus d'informations sur la compilation locale.

La tâche de râteau est :

$ RAILS_ENV=actifs du bac de production/rake : précompiler

Capistrano (v2.15.1 et supérieur) inclut une recette pour gérer cela lors du déploiement. Ajoutez la ligne suivante à Capfile :

charger 'déployer/actifs'

Cela lie le dossier spécifié dans config.assets.prefix à shared/assets. Si vous utilisez déjà ce dossier partagé, vous devrez écrire votre propre tâche de déploiement.

Il est important que ce dossier soit partagé entre les déploiements afin que les pages mises en cache à distance faisant référence aux anciennes ressources compilées fonctionnent toujours pendant toute la durée de vie de la page mise en cache.

Compilation en direct :

Dans certaines circonstances, nous souhaiterons peut-être utiliser la compilation en direct. Dans ce mode, toutes les demandes d'actifs dans le pipeline sont traitées directement par Sprockets.

Pour activer cette option, définissez :

config.assets.compile = vrai

À la première demande, les actifs sont compilés et mis en cache comme indiqué dans le développement ci-dessus, et les noms de manifeste utilisés dans les assistants sont modifiés pour inclure le hachage MD5.

Sprockets définit également l'en-tête HTTP Cache-Control sur max-age=31536000. Cela signale à tous les caches entre votre serveur et le navigateur client que ce contenu (le fichier servi) peut être mis en cache pendant 1 an. Cela a pour effet de réduire le nombre de requêtes pour cet actif depuis votre serveur ; l'actif a de bonnes chances de se trouver dans le cache du navigateur local ou dans un cache intermédiaire.

Ce mode utilise plus de mémoire, fonctionne moins bien que le mode par défaut et n'est pas recommandé.

Si vous déployez une application de production sur un système sans environnement d'exécution JavaScript préexistant, vous souhaiterez peut-être en ajouter un à votre Gemfile : group :production do

gemme 'therubyracer'

fin

Railscarma a mis en œuvre Ruby on Rails depuis ses débuts pour le développement, la formation, le déploiement et la contribution à la communauté Rails et offre le meilleur Services de développement Ruby on Rails. RailsCarma fournit des services Ruby on Rails de bout en bout, notamment du conseil, de l'architecture, de la construction, de la gestion et de l'extension, aux entreprises du monde entier. Vous pouvez également embaucher des développeurs Ruby on Rails grâce à un processus d'embauche simple.Contactez-nous en savoir plus.

En savoir plus : 

Prenez contact avec nous.

Abonnez-vous pour les dernières mises à jour

Articles Similaires

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrench