2012-07-22 9 views
13

Ogni volta schiero la mia Rails 3.2 progetto per Heroku, rake assets:precompile è gestito:È possibile saltare la fase di precompilazione delle risorse per un singolo push di git su Heroku?

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

volte vorrei fare una spinta che so non cambia alcuna attività, come ad esempio un rapido aggiornamento rapido a un controller. È possibile saltare la risorsa: passo precompilato per una singola spinta git a Heroku?

Grazie.

risposta

14

Sicuro! Dovrai creare un manifest.yml nella directory your_app/pubilc/assets.

Il file può essere vuoto. Ma idealmente, fai precompilare tutto a livello locale, quindi i deployment su Heroku sarebbero molto più veloci.

Assicurarsi di aver anche impegnato il file manifest.yml quando si preme su Heroku. Qualcosa come git add -f your_app/pubilc/assets/manifest.yml e un git push heroku master dovrebbero essere sufficienti.

+0

Se voglio ancora che le risorse vengano compilate su Heroku più volte, questa soluzione significa che dovrei fare un checkin nel file manifest.yml, spingere su heroku, quindi essere assolutamente sicuro di rimuovere quel file. Destra? C'è un modo che non comporterebbe questo passaggio aggiuntivo? – Eli

+2

Se si guarda attentamente quando si distribuisce su Heroku, ci sarebbe una riga che dice qualcosa come 'manifest manifest.yml. Supponendo che le risorse siano compilate localmente. Quindi essenzialmente il file manifest è un segnale per dire a Heroku di non eseguire la compilazione degli asset. Penso che puoi sempre eseguire manualmente "heroku run rake assets: precompile' sulla tua console. –

+5

L'esecuzione di "heroku run rake assets: precompile' dalla tua console ** non ** precompila le risorse per il tuo running Heroku dyno. Ogni processo eseguito su Heroku viene eseguito in diversi ambienti virtuali. –

0

In rotaie 4, creare il file manifest-<md5 hash>.json invece di manifest.yml

0

Proprio precompilare localmente con rake assets: precompile, il check-nelle attività che derivano che si trovano in public/assets, e spingere a Heroku.

Questo creerà automaticamente il file manifest-.yml o json nella directory public/assets; quindi heroku lo rileva e segnala Detected manifest file, assuming assets were compiled locally.

Nota 1: alcune persone hanno una linea in development.rb che li fa andare a public/dev-assets instead; in tal caso, è necessario rinominare dev-assets a poco assets)

Nota 2: Assicurarsi che il file di .gitignore non è esclusa la directory public/assets.

Problemi correlati