2012-07-22 12 views
13

Cada vez que despliego mi Rails 3.2 proyecto para Heroku, rake assets:precompile es ejecutado:¿Es posible omitir el paso de precompilación de activos para un único impulso de git en Heroku?

$ git push heroku master 
... 
----> Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     Asset precompilation completed (189.17s) 
... 

veces me quieren dar un impulso, que yo sepa, no cambia ningún activo, tales como una revisión rápida a un controlador. ¿Es posible omitir el activo: paso de precompilación para un solo impulso git a Heroku?

Gracias.

Respuesta

14

Sure! Tendrá que crear un manifest.yml en el directorio your_app/pubilc/assets.

El archivo puede estar en blanco. Pero, idealmente, precompilas todo localmente, por lo que las implementaciones en Heroku serían mucho más rápidas.

Asegúrate de que también has cometido el archivo manifest.yml cuando estás presionando a Heroku. Algo como git add -f your_app/pubilc/assets/manifest.yml y git push heroku master debería ser suficiente.

+0

Si todavía quiero activos para compilar en Heroku la mayoría de las veces, esta solución significa que tendría que hacer una comprobación en el archivo manifest.yml, enviar a heroku y luego estar absolutamente seguro de eliminar ese archivo. ¿Derecha? ¿Hay alguna manera que no implique este paso adicional? – Eli

+2

Si miras detenidamente cuando estás desplegando en Heroku, habría una línea que dice algo como 'detected manifest.yml. Asumiendo activos compilados localmente'. Entonces, esencialmente, el archivo de manifiesto es una señal para decirle a Heroku que no realice una compilación de activos. Creo que siempre puedes ejecutar manualmente 'heroku run rake assets: precompile' en tu consola. –

+5

Ejecutando 'heroku run rake assets: precompile' desde su consola ** ** no precompilará los activos para su funcionamiento con el dyno de Heroku. Cada proceso que se ejecuta en Heroku se ejecuta en diferentes entornos virtuales. –

0

En los carriles 4, crear el archivo en lugar de manifest-<md5 hash>.json manifest.yml

0

Sólo precompilación localmente con rake assets: precompile, marque en el patrimonio resultante que se encuentran en public/assets, y empujar a heroku.

Esto creará automáticamente el archivo manifest-.yml o json en su directorio public/assets; entonces heroku detectará eso e informará Detected manifest file, assuming assets were compiled locally.

Nota 1: Algunas personas tienen una línea en development.rb que hace que estas vayan a public/dev-assets instead; Si es así, es necesario cambiar el nombre de dev-assets sólo assets)

Nota 2: Asegúrese de que el archivo de .gitignore no está excluyendo el directorio public/assets.

Cuestiones relacionadas