Я использую 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 здесь .