web-dev-qa-db-fra.com

Comment charger le dossier d'actif du fournisseur dans Rails 4?

J'ai un plugin avec de nombreux types de fichiers et sa propre arborescence (html, css, js, documentation, images, etc.)

Plutôt que de passer par le dossier plugin et de scinder tous les fichiers css et js en vendor/assets/js/vendor/assets/css/ dossiers, je veux juste garder le dossier complet du plugin tel quel. Par exemple,

vendor/assets/multipurpose_bookshelf_slider/

Comment puis-je m'assurer que les chemins d'accès se chargent correctement et les référencer dans mes fichiers de manifeste?

Actuellement, j'ai quelques fichiers placés comme suit (non exhaustif)

/my_app/vendor/assets/multipurpose_bookshelf_slider/css/skin01.css
/my_app/vendor/assets/multipurpose_bookshelf_slider/js/jquery.easing.1.3.js
/my_app/vendor/assets/multipurpose_bookshelf_slider/
/my_app/vendor/assets/multipurpose_bookshelf_slider/

Je les référence dans

application.js

//= require multipurpose_bookshelf_slider/js/jquery.easing.1.3.js
//= require multipurpose_bookshelf_slider/js/jquery.bookshelfslider.min.js

application.css.scss

@import "css/bookshelf_slider";
@import "css/skin01";
46
ahnbizcad

Tout dossier créé directement sous assets sera ajouté aux chemins de chargement. Les fichiers de ce dossier peuvent être référencés comme d'habitude de la manière suivante:

Si tu as

  • vendor/assets/custom/js/file.js

  • vendor/assets/custom/css/file.css

puis vendor/assets/custom/ sera ajouté aux chemins de chargement.

Incluez vos fichiers dans les fichiers suivants en procédant comme suit:

application.js

//= require js/file

application.css.scss

@import "css/file";

Une fois que cela est fait, assurez-vous de redémarrer votre serveur local, car c’est au démarrage que les chemins de chargement sont reconnus.

Remarque: pour voir une liste des chemins de chargement, tapez votre terminal Rails c, puis tapez Rails.application.config.assets.paths.

87
ahnbizcad

Si le pipeline d'actifs est activé dans l'application que vous exécutez, il devrait rechercher vos actifs après avoir développé le chemin d'accès dans votre application.rb

config.assets.paths << Rails.root.join("multipurpose_bookshelf_slider")
4
D7na

Je préfère la réponse de D7na mais avec un peu d'amélioration à mon avis.

Tant que cela concerne les actifs, je pense qu'il vaut mieux être placé dans le assets.rb fichier.

assets.rb:

Rails.application.config.assets.paths << Rails.root.join("multipurpose_bookshelf_slider")
3
Ayman Salah