Как очистить кеш Sprockets?

Когда компиляция объекта Sprockets завершается сбоем (из-за синтаксической ошибки в CoffeeScript или SASS), он не может перекомпилировать после исправления ошибки, поскольку сообщает, что «файл уже требуется».

Чтобы заставить объект Sprockets работать, я должен уничтожить его и создать заново. Мне было интересно, знает ли кто-нибудь, есть ли способ сказать объекту Sprocket, чтобы он внутренне сбрасывал себя, чтобы не столкнуться с этой проблемой.


person kidcapital    schedule 12.02.2012    source источник
comment
Это в режиме разработки или в среде, где вы используете предварительно скомпилированные активы?   -  person Ross Allen    schedule 17.10.2012


Ответы (3)


rake tmp:cache:clear удаляет каталог временного кэша.

person Ross Allen    schedule 21.11.2012
comment
Не очищает кеш звездочки. Файлы под ./tmp/cache/assets/development/sprockets/ все еще существуют. - person Zorayr; 12.12.2013
comment
А как насчет rake assets:clobber? Это недавнее дополнение, и оно может быть доступно только в Rails 4. - person Ross Allen; 12.12.2013
comment
Ага. Если вам нужна более целенаправленная версия, rake tmp:clear:cache удаляет tmp/cache. edgeguides.rubyonrails.org/command_line.html#tmp - person Ross Allen; 12.12.2013

В моем случае сработала следующая команда:

rake tmp:clear
person Zorayr    schedule 12.12.2013
comment
Это более широкое понятие, чем просто кэш активов/звездочек. Согласно tmp docs: rake tmp:clear очищает все три: кеш, сессии и розетки. - person Ross Allen; 11.04.2015

Так должно быть:

Rails.application.assets.cache.clear

но этот метод только в главной ветке и даже в бета.

Обновление: добавлено в 4.0.0. бета5.

person hlcs    schedule 19.01.2017