2013-02-04 13 views
11

ja popchnął app szyn Heroku i utrzymać się na prowadzeniu w następujący problem:Szyny Aktywa prekompilację prostu nie działa

będę zapisać zmiany w moim głównym pliku css.scss (w aktywa/stylów) lub do zdjęć w zasobach/obrazach, naciśnij przycisk git, przekaż to do heroku i odśwież stronę, aby dowiedzieć się, że te zasoby nie zostały w ogóle załadowane.

To był również niewielki problem na serwerze lokalnym, ale wpisując:

rake assets:precompile 

i przeładowywania lokalnego serwera zwykle pracował, podczas gdy robi

heroku run rake assets:precompile 

a następnie ponownie naciska nic nie robi. Szukałem informacji i nie znalazłem niczego szczególnie przydatnego.

Warto zauważyć, że w moim config/environment.rb (niektóre z nich w wyniku wspomnianej połowowej wokół):

# Enable the asset pipeline 
config.assets.enabled = true 

if defined?(Bundler) 
    # If you precompile assets before deploying to production, use this line 
    Bundler.require(*Rails.groups(:assets => %w(development test))) 
    # If you want your assets lazily compiled in production, use this line 
    # Bundler.require(:default, :assets, Rails.env) 
end 

w config/środowiska/production.rb:

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

# Compress JavaScripts and CSS 
config.assets.compress = true 

# Fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = true 

# Generate digests for assets URLs 
config.assets.digest = true 

O dodatkowe możliwe zainteresowanie, kiedy popycham do heroku, mówi, między innymi, to:

Preparing app for Rails asset pipeline 
     Detected manifest.yml, assuming assets were compiled locally 
-----> Rails plugin injection 
     Injecting rails_log_stdout 
     Injecting rails3_serve_static_assets 

i

Installing dependencies using Bundler version 1.3.0.pre.5 
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 

dowiedziałem się z szyn 3 i tak naprawdę nie wiem, jak rurociąg aktywów różni się od tego, co było dostępne w poprzedniej wersji, więc przepraszam, jeśli mam być idiotą i oddanie nakładanie i/lub sprzeczne ustawienia w moich plikach konfiguracyjnych.

Doceniam każdą pomoc. To był ból głowy.

Odpowiedz

13

Wygląda na to, że możesz dodać lokalnie skompilowane zasoby, aby je git i przesuwać, a w rezultacie Heroku nie będzie kompilować Twoich zasobów w trybie push. Sprawdź, czy nie dodajesz katalogu publicznego/aktywów do git.

+1

Więc masz na myśli add/public/assets do pliku .gitignore? Czy to I "git rm" katalogu? Lub usunąć określone pliki w nim? Przepraszam. Nie wiem, jaki stosunek ma ten katalog do potoku zasobów, więc nie jestem pewien, jak z mocą wsteczną usunąć niepoprawne składniki. – Sasha

+3

Usuń ten katalog z git, a następnie dodaj go do git ignore. Ten katalog jest miejscem, w którym kompiluje wszystkie zasoby, do których należy uruchomić zasoby rake: prekompilacja. –

+0

Pamiętaj, aby zatwierdzić usunięte pliki w publicznym/asset/do opanowania! więc pchasz pusty katalog public/assets/do heroku. Powinieneś zobaczyć, że heroku automatycznie wywołuje atrybuty rake: prekompilacja – Bruno

Powiązane problemy