Llevo varios días trabajando en la integración del framework Metronic dentro de una aplicación Rails, y uno de los problemas con que me encontré fue la desaparición de los assets de Metronic al pasar a producción (aunque en entorno de desarrollo todo se veía bien). El problema era que el precompilado de assets no estaba incluyendo bien las rutas de todos los ficheros de Metronic. Al final, después de dar muchas vueltas y leer mucho sin que todo esto me terminara de aclarar la solución, decidí que la mejor manera para encontrar la respuesta era el método de prueba y error, así que me puse manos a la obra. El problema de este método es que necesitaba subir mis cambios al servidor en producción cada vez que hacía modificaciones, por lo que perdía mucho tiempo. Después de unas pocas pruebas infructuosas decidí que tenía que haber una manera de usar los assets precompilados también en el entorno de desarrollo, así que busqué y busqué hasta que encontré la respuesta: En el fichero /config/environments/development.rb hay varias líneas que controlan la manera en la que se comporta la inclusión de assets, en particular:
# Debug mode disables concatenation and preprocessing of assets.
# This option may cause significant delays in view rendering with a large
# number of complex assets.
config.assets.debug = true
Poniendo config.assets.debug a false conseguimos lo que queremos: que en el entorno de desarrollo se llame también a mis assets precompilados (en /public/assets) en vez de a los assets en bruto de /app/assets. A partir de este momento pude trabajar de manera mucho más fluida (todo lo fluida que Webrick me permitió, pues parece que servir ficheros un poco pesados no es lo suyo porque añade bastante latencia).
Por supuesto entre prueba y prueba había que precompilar assets (rake assets:precompile), y reiniciar Webrick, pero nada comparado con tener que subir decenas de carpetas al servidor cada vez.
Finalmente la integración de Metronic quedó perfectamente funcional también en producción 🙂