Estoy ejecutando una aplicación Rails 3.1 en la pila Heroku Cedar que admite la canalización de activos. Heroku lists 3 ways para compilar elementosHeroku rails 3.1 aplicación - compilación de activos localmente frente a la compilación de activos durante la compilación de babosas
- Compilación de activos localmente.
- Compilación de activos durante la compilación de slug.
- Compilar elementos durante el tiempo de ejecución.
Obviamente, el # 3 es malo para el rendimiento y los documentos de Heroku también lo recomiendan. Pero no estoy seguro de cuál es mejor entre # 1 y # 2.
# 1 requiere que ejecute rake assets:precompile
e incluya su carpeta public/assets
en git. Su babosa será más grande, pero supongo que el tiempo de inactividad para implementar un sitio será menor. Pero el tamaño más grande de la babosa significa un arranque de la aplicación más lento, así que tal vez sea un lavado.
# 2 lo hará tomar más tiempo para implementar actualizaciones a causa de precompilación que se realiza en el lado Heroku. Sin embargo, tendrá una babosa más pequeña y habrá menos para administrar/recordar.
Mi pregunta es - qué opción (# 1 o # 2) es la mejor para la producción y por qué?
Hasta ahora se ve como la opción # 2, pero quiero asegurarme de que no estoy pasando por alto algo.
http://devcenter.heroku.com/articles/cdn-asset-host-rails31 es una buena lectura también - a pesar de que sincroniza los activos a S3 de su aplicación en Heroku por lo que todavía están presentes en su babosa no sirve de Heroku. –
también alguna vez # 2 no siempre es una opción. Heroku siempre intentaría compilarlos durante la compilación slug primero y si luego falla, hacerlo en tiempo de ejecución. –