2013-01-07 15 views
56

Uso le guide 4 & ruby ​​1.9.3 per la mia applicazione e fancybox2-rails gem, ma c'è un problema generale con la pipeline di asset. Se eseguo rake task per precompilazione, tutto funziona correttamente, ad eccezione delle immagini in vendor/assets/images e ../gems/ruby-1.9.3-p327/gems/fancybox2-rails-0.2.1/vendor/assets/images. Le immagini di queste due cartelle non vengono precompilate e alla fine ho un problema con i collegamenti non funzionanti alle immagini non esistenti. Eventuali suggerimenti?rotaie 4 asset del fornitore di pipeline di asset le immagini non sono precompilate

risposta

77

Sembra che le immagini siano incluse per impostazione predefinita solo dalla cartella app/risorse. Quindi la soluzione è quella di aggiungere questa linea al config/application.rb

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

Questo funziona per me, ma questa impostazione * dovrebbe * andare nel file config/environments/production.rb. Tuttavia, questo è attualmente interrotto nelle guide 4.0.0.beta1 (vedere https://github.com/rails/rails/issues/9572 e https://github.com/rails/sprockets-rails/pull/36) – ottobar

+1

Inizialmente avevo 2 immagini che non venivano caricate, fancybox_loading.gif e fancybox_overlay.png, questo fisso overlay.png ma loading.gif continua a non funzionare. – Jamesla

+0

Inseritelo in production.rb, ma non ha aiutato la distribuzione. Nessuna immagine di fancybox presente nelle risorse compilate. – Almaron

8

Sembra Sporker non può immagini autoload dal vendor/attività/immagini.

2.2 Asset Organizzazione beni Pipeline possono essere inseriti all'interno di un programma in una delle tre posizioni: app/attività, lib/attività o vendor/attività.

app/assets è per le risorse che appartengono all'applicazione, ad esempio immagini personalizzate, file JavaScript o fogli di stile.

lib/assets è per il codice della propria libreria che non si adatta perfettamente all'ambito dell'applicazione o alle librerie condivise tra le applicazioni.

venditore/beni è per le attività che fanno capo a soggetti esterni, come il codice per i plugin JavaScript e CSS framework

Dalla descrizione venire da guides.rubyonrails.org, non credo che hanno ignorato venditore/attività/immagini senza intenzione.

Così ho appena aggiunta la seguente riga:

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

E, ho risolto il mio problema. Spero che questo funzioni per voi.

+6

Questo non ha funzionato per me. – newUserNameHere

+1

Non ha funzionato su Rails 4.1.5 –

4

Per il mio progetto 4.2.x Rails, ho solo spostato le immagini vendor per vendor/assets/images e ha aggiunto che questo application.rb:

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

funziona bene su sviluppo e produzione.