Ответ 1
Попробуйте выполнить следующие команды:
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
Я - относительно новый Rails-программист, и когда я пытаюсь прекомпилировать активы (или даже запускать сервер иногда), я получаю эту ошибку:
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'
...
Я попытался отключить переваривание в процессе разработки и попытался запустить задачу rake с флагом RAILS_ENV
, указывающим на разработку, но без результатов.
Я пробовал искать эту проблему в google и, похоже, не нашел ничего подходящего.
Я запускаю jRuby 9.0.5.0
и rails 4.2.5.2
.
Попробуйте выполнить следующие команды:
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
Для среды разработки просто удалите tmp/cache/assets/
путь
$ rm -rf tmp/cache/assets/
У меня была такая же проблема в моей производственной среде. Я заметил, что мои коллеги забыли добавить public/assets
в проект. Добавив это и совершив, моя проблема решена. Если вы разрабатываете свое приложение, проверьте, существуют ли ваши активы.