2011-11-15 8 views
6

Ho un problema con la pipeline di asset, ho già una risorsa/controller chiamata asset. Quindi ho cambiato l'opzione assets.prefix su "/ externals".Rails 3.1.1 - Asset Pipeline - asset.prefix non funziona con la risorsa: risorse

config.assets.prefix = '/externals' 

Questo semplice dose non funziona a meno che rimuovo:

resources: assets 

Poi tutte le opere come previsto.

Non sono sicuro di come scrivere un test per dimostrarlo ma ho creato un'app per mostrarlo.

https://github.com/nodrog/asset-pipeline-issue

Se si esegue l'applicazione, e visitare '/ prodotti' tutto funzionerà, quindi passare al file percorsi e modificare il create_bug variabile su true.

Abbiamo esaminato https://github.com/rails/rails/blob/master/actionpack/lib/sprockets/helpers/rails_helper.rb e aggiunto un debugger al metodo asset_path.

Questo metodo non viene chiamato, se si è un debugger nel metodo javascript_include_tag. Ed esegui il metodo (: asset_path) .source_location, ti dice che sta chiamando il metodo da route predefinite non dall'helper di pignoni.

Qualsiasi aiuto sarebbe molto apprezzato ...

+0

aperto un biglietto in rotaie faro su questo tema. e ho caricato una gente che risolve il problema, anche se probabilmente non nel modo migliore. https://github.com/rails/rails/issues/3643#issuecomment-2775938 – nodrog

+0

Hai ragione nodrog, questo è un problema complicato. Mi sono imbattuto in esso perché gli helper non stavano usando l'opzione config.assets.prefix (anche se non c'erano risorse: assets in routes.rb), e quando è stato risolto, ho capito che tutto andava bene. Purtroppo, gli helper di pignoni non usano l'impostazione di configurazione quando le risorse sono specificate in config.rb. Perché? Daremo un'occhiata al tuo lavoro adesso. Ho provato a risolverlo con i vincoli, oltre a dirigere il mio prefisso personalizzato su Pignoni, ma senza fortuna. – Docunext

risposta

Problemi correlati