6

Sto cercando di aggiornare il codice per lavorare con i binari liberati 3.1.0:Come modificare temporaneamente il percorso di uscita quando precompilazione attività, Pignoni/Rails beni gasdotto, 3.1.0

# temporarily set the static assets location from public/assets to our spec directory 
    ::Rails.application.assets.static_root = Rails.root.join("spec/javascripts/generated/assets") 

    ::Rake.application['assets:clean'].invoke 
    ::Rake.application['assets:precompile'].invoke 

Ora che Pignoni :: L'ambiente # static_root è stato rimosso, qual è il modo migliore per modificare temporaneamente la directory di output degli sprockets?

Edit: Inoltre mi piacerebbe essere in grado di pulire il patrimonio della mia directory di output personalizzati :)

risposta

1

È possibile utilizzare config.assets.prefix, ma questo sarà ancora mettere gli asset nell'elenco pubblico (vedi here per la rake task, che si aggiunge allo public_path e al prefisso).

Nel vostro caso, questo dovrebbe funzionare:

Rails.application.config.assets.prefix = "../spec/javascripts/generated/assets" 
Rails.application.config.assets.manifest = File.join(Rails.public_path, config.assets.prefix) 

ho dovuto specificare il percorso a causa della manifesta l'ordine di caricamento strana della pignoni railtie. Senza farlo, rimane bloccato a public/assets, che non esiste e fa esplodere l'attività rake. YMMV.

Nota a margine: l'ho provato inizialmente nell'ambiente di sviluppo, ma il config.assets.prefix ha rifiutato di cambiare. Ho il sospetto che mettere config.assets.enabled a true avrebbe risolto questo problema, ma non ho ancora avuto modo di testarlo.

Come bonus, i assets:clean funziona perfettamente con questa soluzione (si può vedere di persona in the rake task)

+0

mi piace molto questo tipo di domanda, che mi danno la scusa perfetta per fare un tuffo nella fonte rotaie: -) –

+0

Grazie Benoit, ha funzionato! –

+0

Non funziona come nei binari 4 –

Problemi correlati