2012-07-22 7 views
13

każdym razem wdrożyć mojego projektu Rails 3.2 do Heroku, rake assets:precompile jest prowadzony:Czy można pominąć krok prekompilacji aktywów dla pojedynczego naciśnięcia git na Heroku?

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

Czasami chcę, aby push, że wiem, nie zmienia żadnych aktywów, takich jak szybkie poprawki do sterownika. Czy można pominąć zasób: wykonaj etap prekompilacji dla pojedynczego git push na Heroku?

Dzięki.

Odpowiedz

14

Oczywiście! Musisz utworzyć katalog manifest.yml w katalogu .

Plik może być pusty. Ale najlepiej prekompiluj wszystko lokalnie, więc rozmieszczenie w Heroku będzie znacznie szybsze.

Upewnij się, że również popełniłeś plik manifest.yml, gdy naciskasz na Heroku. Powinno wystarczyć coś takiego jak git add -f your_app/pubilc/assets/manifest.yml i git push heroku master.

+0

Jeśli nadal chcę, aby większość zasobów była kompilowana na Heroku, rozwiązanie to oznacza, że ​​musiałbym dokonać jednego checkin do pliku manifest.yml, przesłać do heroku, a następnie koniecznie usunąć ten plik. Dobrze? Czy jest jakiś sposób, który nie wymagałby tego dodatkowego kroku? – Eli

+2

Jeśli przyjrzysz się uważnie przy wdrażaniu w Heroku, pojawi się wiersz z komunikatem "detected manifest.yml". Zakładając, że zasoby są kompilowane lokalnie ". Zasadniczo plik manifestu jest sygnałem do powiedzenia Heroku, aby nie wykonywał kompilacji aktywów. Wydaje mi się, że zawsze możesz ręcznie uruchomić 'Heroku run rake assets: precompile' na konsoli. –

+5

Uruchamianie 'heroku uruchamiaj zasoby rake'u: prekompilacja' z twojej konsoli ** nie ** prekompiluje zasobów dla twojego biegowego Herno. Każdy proces uruchomiony na Heroku jest uruchamiany w różnych środowiskach wirtualnych. –

0

w szynach 4, utworzyć plik manifest-<md5 hash>.json zamiast manifest.yml

0

Wystarczy prekompilacji lokalnie z rake assets: precompile, sprawdź w otrzymanych aktywów, które są w public/assets i popchnąć do Heroku.

Spowoduje to automatyczne utworzenie pliku manifest-.yml lub json w katalogu public/assets; wtedy heroku wykryje to i zgłosi Detected manifest file, assuming assets were compiled locally.

Uwaga 1: Niektóre osoby mają linię w numerze development.rb, która powoduje, że te informacje są przesyłane pod numer public/dev-assets instead; Jeśli tak, to trzeba zmienić nazwę dev-assets tylko assets)

Uwaga 2: Upewnij się, że plik nie jest wyjątkiem .gitignore katalog public/assets.

Powiązane problemy