Я использую CloudFlare CDN в приложении Rails 3.1. Cloudflare - это CDN, работающий на уровне DNS. При первом попадании статического актива CloudFlare загружает его из вашего приложения, а затем кэширует его в своем CDN. Будущие запросы на загрузку этого ресурса из CDN вместо вашего приложения.
Проблема, с которой я столкнулась, заключается в том, что если вы установите для кеширования контроллера значение true:
config.action_controller.perform_caching = true
он позволяет использовать промежуточное ПО Rack:: Cache. Поскольку Rails устанавливает параметр управления кешем по умолчанию для статических активов, эти активы записываются в хранилище Rails.cache. В результате мой кеш-накопитель (в моем случае redis) заполняется статическими ресурсами с URL-адресом в качестве хэш-ключа.
К сожалению, я не могу отключить заголовки управления кэшем статических ресурсов, не затрагивая, как Cloudflare и браузеры моих пользователей кэшируют активы. Я не могу отключить кеширование контроллера, или я теряю кеширование страницы/действия/фрагмента. Тот же результат, если я удалю промежуточное ПО Rack:: Cache.
Есть ли у кого-нибудь другие идеи?
Обновление: я открыл билет на GitHub здесь.