web-dev-qa-db-fra.com

rails 4 images d'actifs du fournisseur de pipeline d'actifs ne sont pas précompilées

J'utilise Rails 4 & Ruby 1.9.3 pour mon application et fancybox2-Rails gem, mais il y a un problème général avec le pipeline d'actifs. Si je lance rake task pour la précompilation, alors tout va bien sauf pour les images dans vendor/assets/images et ../gems/Ruby-1.9.3-p327/gems/fancybox2-Rails-0.2.1/vendor/assets/images. Les images de ces deux dossiers ne sont pas précompilées et finalement j'ai un problème avec des liens morts vers des images inexistantes. Aucune suggestion?

60
banesto

Il semble que les images soient incluses par défaut uniquement à partir du dossier app/assets. La solution consiste donc à ajouter cette ligne à config/application.rb

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
79
banesto

Il semble que Sporker ne puisse pas charger automatiquement les images du fournisseur/des actifs/des images.

2.2 Organisation des actifs Les actifs du pipeline peuvent être placés dans une application dans l'un des trois emplacements suivants: application/actifs, lib/actifs ou fournisseur/actifs.

app/assets est pour les actifs qui appartiennent à l'application, tels que les images personnalisées, les fichiers JavaScript ou les feuilles de style.

lib/assets est pour le code de vos propres bibliothèques qui ne correspond pas vraiment à la portée de l'application ou aux bibliothèques partagées entre les applications.

fournisseur/actifs est pour les actifs qui appartiennent à des entités externes, tels que le code pour les plugins JavaScript et les frameworks CSS

De la description vient de guides.rubyonrails.org , je ne pense pas qu'ils aient ignoré le vendeur/actifs/images sans intention.

J'ai donc ajouté la ligne suivante:

#config/application.rb
config.assets.paths << Rails.root.join("vendor", "assets", "images")

Et, j'ai résolu mon problème. J'espère que cela fonctionnera pour vous.

9
rocLv

Pour mon Rails 4.2.x projet, je viens de déplacer les images du fournisseur vers vendor/assets/images et l'a ajouté à application.rb:

config.assets.precompile += %w(vendor/assets/images/*)

Fonctionne très bien sur le développement et la production.

6
tirdadc