Ho recentemente provato ad aggiornare la mia app Rails 3.2.13 alla nuova versione 4.0.0 e ho provato a distribuirla su Heroku. Sfortunatamente, nonostante il successivo this guide, le risorse sembrano non essere ancora precompilate correttamente. Naturalmente, ho già aggiunto la gemma rails_12factor
e ho anche fatto un paio di cose per aggiornare correttamente l'app alla 4.0.0. Funziona molto bene in modalità sviluppo e tutti i miei test sono ancora in corso. Tuttavia, continua a non visualizzare le risorse in Heroku.Rails 4 asset non sono ancora precompilati in Heroku nonostante l'installazione della gemma rails_12factor
Una cosa che ho notato l'esecuzione heroku run ls public/assets
è che Heroku era effettivamente in grado di precompilare i beni da app/assets
e facendo un comando cat
su quei file visualizzerà la versione compilata dei beni. Tuttavia, se accedo al file sul browser, ottengo sempre un 404.
Heroku è effettivamente pronto per Rails 4?
EDIT:
Ecco una lista delle cose che ho fatto per l'aggiornamento da 3.2.13 a 4:
Rimosso gruppo di attività in quanto non è più utilizzata in Rails 4
Versione di aggiornamento di binari da
3.2.13
a4.0.0
Rimuovere richiede la linea di
active_resource/railties
da application.rb dal active_resource stato rimosso come una dipendenza da rotaieAggiorna sass-rail e caffè-rotaie per utilizzare i loro rami anagrafici corrispondenti perché utilizza railties 4.0.0.rc2 anziché 4.0.0 come la dipendenza
Aggiorna versione di escogitare per 3.0.0.rc
Aggiungi protected_attributes per facilitare la transizione a Rails 4 senza dover passare per strong_parameters ancora
Cambiare le configurazioni dell'ambiente per aggiungere config.eagerload e rimuovere config.whiny_nils per rimuovere gli avvisi di deprecazione.
Cambio sintassi della conferma() per rimuovere warning di deprecazione
sintassi Variazione hash dai razzi hash al 1.9.3 sintassi
Rimuovere auto spiegare config per rimuovere warning di deprecazione
Aggiungi directory bin utilizzando rotaie rake: aggiornamento: bin
Aggiungi
rails_12factor
gemma di essere in grado di ospitare a HerokuAggiungi la versione rubino in Gemfile per heroku
EDIT 2
Credo che sia anche opportuno ricordare che non c'era eventuali errori nel Heroku durante la precompilazione e dice in realtà che è riuscito a precompilare il patrimonio ed è per questo che è strano che non ha funzionato.
Hai spostato le gemme dal gruppo 'assets' in Gemfile? Questo gruppo non è più utilizzato in Rails 4. –
Ok, un'altra ipotesi selvaggia. Non hai risorse compilate in pubblico/beni/produzione nel repository git? (chiedendo domande stupide perché sembra che tu abbia curato tutto il resto) –
Stai dicendo che dovrei precompilare le risorse localmente e farlo controllare in git? Heroku non suppone precompilare le risorse al momento del dispiegamento? Almeno, questo è quello che ha fatto per me quando ero ancora in 3.2.13. –