Acabo de actualizar mi aplicación en Heroku de Rails 3.0 a 3.1, y estoy tratando de hacer que la tubería de activos funcione. El principal problema es que puedo leer desde el heroku ingrese el siguiente tipo de líneas, para cada activo:Pipeline de activos al actualizar a Rails 3.1 en Heroku
2011-09-03T16:35:28+00:00 app[web.1]: cache: [GET /assets/border-a3c571a354b9381740db48aeebfaa63a.jpg] miss
Si entiendo la tubería correctamente, esto no debería ser "miss" para cada pedido que haga a partir de una navegador, pero debe encontrarse en la memoria caché.
lectura de la documentación Heroku se puede encontrar esta explicación:
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.
Pero ¿cómo se debe que "activos: precompilación" será tarea? Traté de crear un proyecto con raíles 3.1 desde cero para intentar averiguarlo, pero no existe tal tarea en un proyecto simple. ¿O me estoy perdiendo algo? ¿Cómo podría hacer para que los activos se encuentren en el caché? Tal vez es solo un problema con la configuración.
Estas son las opciones de mi fichero de configuración producción:
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
Mi application.rb tiene esta línea:
config.assets.enabled = true
Gracias mucho por su ayuda!
Compilo los activos directamente en heroku, no contaminando mi repositorio local con activos compilados. Use el comando: heroku run rake assets: precompile –