Я использую Rails 3.2.13 и Rails Asset Pipeline. Я хочу использовать Asset Pipeline, чтобы я мог использовать SASS, CoffeeScript и ERB для своих активов, и Pipeline автоматически их компилирует, поэтому я не могу отключить конвейер в разработке. Я не прекомпиляции активов в разработке никогда и нет даже каталога public/assets/
.
Однако, когда я вношу изменения во включенный файл, например, в файл _partial.html.erb
, который включен (отображается) в файле layout.html.erb
, без изменения файла, делающего сам включение (в этом примере layout.html.erb
), Sprockets не обнаруживает изменения и делает недействительными кеш, поэтому я продолжаю получать один и тот же устаревший файл. Когда я делаю это в активной разработке, я хочу отключить любое кэширование активов, чтобы я мог получать изменения по каждому запросу, но я не могу понять, как это сделать. Я установил все следующие в моем development.rb
:
config.action_controller.perform_caching = false
config.action_dispatch.rack_cache = nil
config.middleware.delete Rack::Cache
config.assets.debug = true
config.assets.compress = false
config.cache_classes = false
Тем не менее, даже при этом файлы отображаются под tmp/cache/assets/
и tmp/cache/sass/
, и изменения в будущих запросах недоступны. Прямо сейчас мне приходится вручную удалять эти каталоги каждый раз, когда я хочу увидеть изменения.
К сожалению, все содержимое раздела Как работает кеширование в руководстве RoR для конвейера активов:
Sprockets использует хранилище кешей Rails по умолчанию для кэширования активов в развития и производства.
TODO: добавьте больше об изменении хранилища по умолчанию.
Итак, как я могу получить Sprockets для компиляции активов по требованию, но не кэшировать результаты?