Ho appena aggiornato la mia app su Heroku da Rails 3.0 a 3.1 e sto cercando di rendere funzionante la pipeline delle risorse. Il problema principale è che posso leggere dal Heroku registrato il seguente tipo di linee, per ogni risorsa:Assegna pipeline durante l'aggiornamento a Rails 3.1 su Heroku
2011-09-03T16:35:28+00:00 app[web.1]: cache: [GET /assets/border-a3c571a354b9381740db48aeebfaa63a.jpg] miss
Se ho capito bene la pipeline, questo non dovrebbe essere "miss" per ogni richiesta che faccio da un browser, ma dovrebbe essere trovato nella cache.
Leggendo i documenti Heroku è possibile trovare questa spiegazione:
Rails 3.1 provides an assets:precompile rake task to allow the compilation penalty to be paid up front rather than each time the asset is requested. If this task exists in your app we will execute it when you push new code.
Ma come si dovrebbe che "Attività: precompilare" task essere? Ho provato a creare un progetto con rails 3.1 da zero per cercare di scoprirlo, ma non esiste un compito simile in un progetto semplice. O mi sta sfuggendo qualcosa? Come posso fare in modo che le risorse vengano trovate nella cache? Forse è solo un problema con la configurazione.
Queste sono le opzioni di mio file di configurazione di produzione:
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true # If I turn this off I get a 500 error and logs say that an asset isn't compiled
mio application.rb ha questa linea:
config.assets.enabled = true
Grazie mille per il vostro aiuto!
compilo i beni direttamente su Heroku, non inquinare il mio repository locale con un patrimonio compliled. Utilizzare il comando: heroku eseguire rake assets: precompilare –