Używam aplikacji Rails 3.1 na stosie Heroku Cedar, która obsługuje potok zasobów. Heroku lists 3 ways do kompilacji zasobówAplikacja Heroku rails 3.1 - kompilowanie zasobów lokalnie vs kompilowanie zasobów podczas kompilacji zliczeń
- Kompilowanie zasobów lokalnie.
- Kompilowanie zasobów podczas kompilacji slug.
- Skompiluj zasoby w czasie wykonywania.
Oczywiście nr 3 jest szkodliwy dla wydajności, a dokumentacja Heroku również go odradza. Ale nie jestem pewien, który jest lepszy między 1 a 2.
# 1 wymaga uruchomienia rake assets:precompile
i włączenia folderu public/assets
w git. Twój ślimak będzie większy, ale zakładam, że przestój na wdrożenie witryny będzie niższy. Ale większy rozmiar ślimaka oznacza wolniejsze uruchamianie aplikacji, więc może to pranie.
# 2 spowoduje, że wdrożenie aktualizacji zajmie więcej czasu, ponieważ preokompilacja odbywa się po stronie Heroku. Będziesz miał jednak mniejszy ślimak i nie będziesz go więcej zarządzać/pamiętać.
Moje pytanie brzmi - która opcja (nr 1 lub nr 2) jest najlepsza dla produkcji i dlaczego?
Do tej pory wygląda jak opcja nr 2, ale chcę się upewnić, że czegoś nie przeoczyłem.
http://devcenter.heroku.com/articles/cdn-asset-host-rails31 to również dobra lektura - chociaż synchronizuje zasoby z S3 z aplikacji na Heroku, więc nadal są obecne w Twoim ślimaku, ale nie są obsługiwane z Heroku. –
również czasami # 2 nie zawsze jest opcją. Heroku zawsze będzie starał się je skompilować podczas kompilacji slug, a jeśli nie, to w czasie wykonywania. –