2011-11-25 4 views
9

Czy możliwe jest automatyczne prekompilowanie moich zasobów w aplikacji Rails przed wysłaniem do Heroku? Zawsze zapominam o tym, więc byłoby miło, gdybym wpisał git push heroku master, najpierw uruchomiłby rake assets:precompile ; git commit add . ; git commit -a -m "Precompile.", albo coś podobnego.Automatyczne prekompilowanie zasobów przed wysłaniem do Heroku

Czy ktoś osiągnął takie rozwiązanie? Prawdopodobnie bez haczyków? Chociaż podejrzewam, że to jedyny sposób.

Odpowiedz

14

W końcu to rozgryzłem. Rzeczywiście byłem na stosie cedrów. Problem polegał na tym, że sprawdziłem mój katalog public w Git, a kiedy popchnąłem do Heroku, zdałem sobie sprawę, że istnieje public, a tym samym założono, że dokonałem wstępnej kompilacji. Uruchomienie git rm -r public i dodanie public/** do mojego , a następnie pchanie, rozwiązuje problem.

3

Mogłeś zawsze alias heroku lub coś podobnego do rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master w swoim profilu bash tj

#in ~/.bash_profile 
alias precompile_push='rake assets:precompile ; git commit add . ; git commit -a -m "Precompile." ; git push heroku master' 
+1

Jeśli jest to część procesu wdrożenia, polecam dokonywania że skrypt w swoim kodzie. –

8

Brzmi jak ty może nie być na Heroku's Cedar Stack? Jeśli używasz potoku aktywów (Rails -v> = 3.1), cedr zapewnia three options do kompilowania zasobów.

Z docs:

Jeśli nie zebraliśmy aktywa lokalnie, będziemy próbować uruchomić zadanie assets:precompile podczas zawieszonego kompilacji.

1

Na stosie cedrów zrobi to podczas kompilacji ślimaków. Polecam to.