2016-03-10 31 views
14

Jestem stosunkowo nowym programistą Rails, a kiedy próbuję wstępnie kompilować zasoby (lub nawet uruchomić serwer czasami), pojawia się ten błąd:Uzyskanie tego błędu podczas wstępnego kompilowania zasobów: TypError: nie można przetrawić ActiveSupport :: StringInquirer

TypeError: couldn't digest ActiveSupport::StringInquirer 

    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/digest_utils.rb:83:in `digest' 
    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:55:in `block in load' 
    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:312:in `block in fetch_asset_from_dependency_cache' 
    org/jruby/RubyArray.java:1560:in `each' 
    org/jruby/RubyEnumerable.java:1016:in `each_with_index' 
    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:308:in `fetch_asset_from_dependency_cache' 
    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:44:in `load' 

...

próbowałem wyłączyć trawienie w rozwoju, i próbowali uruchamiając zadanie natarcia z RAILS_ENV flagi skierowaną do rozwoju, ale bez rezultatu.

Próbowałem już znaleźć ten problem w Google i nie mogę znaleźć niczego odpowiedniego.

Używam jRuby 9.0.5.0 i rails 4.2.5.2.

+0

otrzymuję ten sam błąd na moim RSpec i nie mam pojęcia dlaczego :(thx szyny 4 – jfarn23

+6

został uruchomiony w tym też dzisiaj (rspec) , jeszcze nie jestem pewien, co jest główną przyczyną, ale kiedy usunę "tmp/cache/assets" i uruchom './bin/spring stop', a następnie uruchom specyfikacje działa _Edit: _ przynajmniej w naszym przypadku było spowodowane przez przełączanie i ponowne łączenie gałęzi – lwe

+3

Usuwanie tmp/cache/assets wydaje się działać naprawdę –

Odpowiedz

9

Spróbuj skopać te polecenia:

RAILS_ENV=test bundle exec rake assets:clean 
RAILS_ENV=test bundle exec rake tmp:cache:clear 
RAILS_ENV=test bundle exec rake assets:precompile 
+1

Napotkałem ten sam problem w produkcji podczas wdrażania przy użyciu Capistrano 3. Jeśli użyto pierwszych dwóch kroków z 'RAIL S_ENV = produkcja 'na serwerze produkcyjnym, a następnie uruchom' cap production deploy' z lokalnego komputera. Nie zapomnij zatrzymać Apache (lub dowolnego serwera WWW) i pasażera (lub dowolnego serwera aplikacji) –

0

Miałem ten sam problem w moim środowisku produkcyjnym. Zauważyłem, że moi koledzy zapomnieli dodać do projektu public/assets. Po dodaniu i zatwierdzeniu mój problem został rozwiązany. Jeśli tworzysz swoją aplikację, sprawdź, czy Twoje zasoby istnieją.

7

o środowisko rozwoju, po prostu usunąć tmp/cache/assets/ ścieżkę

$ rm -rf tmp/cache/assets/