ruby-on-rails - how - rails assets precompile
Rails 4 activos todavĂa no se precompilan en Heroku a pesar de instalar la gema rails_12factor (4)
Intenta mover todas las gemas del grupo de assets
en Gemfile al alcance principal. El grupo de activos ya no se usa en Rails 4 y eso puede estar causando el problema.
Hace poco intenté actualizar mi aplicación Rails 3.2.13 a la recién lanzada 4.0.0 e intenté implementarla en Heroku. Desafortunadamente, a pesar de seguir esta guía , los activos todavía no parecen precompilar correctamente. Por supuesto, agregué la gema rails_12factor
ya y también hice un par de cosas para actualizar correctamente la aplicación a 4.0.0. Funciona muy bien en el modo de desarrollo y todas mis pruebas todavía están pasando. Sin embargo, todavía no muestra los activos en Heroku.
Una cosa que noté al ejecutar heroku run ls public/assets
es que Heroku fue capaz de precompilar los activos de la app/assets
y al hacer un comando cat
en esos archivos se mostrará la versión compilada de los activos. Sin embargo, si tengo acceso al archivo en el navegador, siempre obtengo un 404.
¿Está realmente listo Heroku para Rails 4?
EDITAR :
Aquí hay una lista de cosas que hice para actualizar de 3.2.13 a 4:
Se eliminó el grupo de activos porque ya no se usa en Rails 4
Actualización de la versión de los carriles de
3.2.13
a4.0.0
Eliminar requiere la línea de
active_resource/railties
desde application.rb ya que active_resource se eliminó como una dependencia de los rielesActualiza sass-rails y coffee-rails para usar sus ramas principales correspondientes porque usa railties 4.0.0.rc2 en lugar de 4.0.0 como dependencia
Actualizar la versión de idee a 3.0.0.rc
Agregue los atributos_protegidos para facilitar la transición a Rails 4 sin tener que cambiar a strong_parameters todavía
Cambie las configuraciones del entorno para agregar config.eagerload y eliminar config.whiny_nils para eliminar las advertencias de desactivación.
Cambiar la sintaxis de confirm () para eliminar advertencias de deprecation
Cambie la sintaxis hash de los cohetes hash a la sintaxis 1.9.3
Eliminar configuración de explicación automática para eliminar advertencias de desactivación
Agregue el directorio bin usando rake rails: update: bin
Agrega la gema
rails_12factor
para poder alojar a herokuAgregue la versión de Ruby en Gemfile para heroku
EDIT 2
Supongo que también vale la pena mencionar que no hubo ningún error en Heroku durante la precompilación y en realidad dice que tuvo éxito en la precompilación de los activos, por lo que es extraño que no haya funcionado.
En su archivo production.rb, asegúrese de tener la línea config.assets.compile = true
. Eso resolvió el problema para mí.
Usar una versión por menos trabajada para mí
gem ''twitter-bootstrap-rails'', ''= 2.2.6''
gem ''less-rails'', ''2.3.3''
Me encuentro con el mismo problema. Ahora los estoy precompilando localmente
bundle exec rake assets:precompile RAILS_ENV=production
y añádalos al repositorio y empújelos a heroku.