Как управлять кешем с помощью carrierwave в облачном хранилище Rackspace? - PullRequest
5 голосов
/ 07 марта 2012

Пользователи могут загружать аватары на мой сайт.Это может часто меняться тихо.Мне нужен строгий URL-адрес, который не изменится, поскольку URL-адрес может отображаться в некоторой кэшированной части веб-сайта.Я попытался установить в своем приложении Rails следующие атрибуты тумана, чтобы отключить кэширование, но я не получаю из этого никакого результата ...

config.fog_attributes = {'Cache-Control' => 'max-age=1', 'Expires' => 1.day.ago.httpdate}

Прямо сейчас, когда пользователь загружает новыйаватар, может пройти несколько часов, прежде чем предыдущий исчезнет из кеша.

Вот пример URL аватара пользователя в облачном хранилище Rackspace:

https://c28078.ssl.cf3.rackcdn.com/user/1/small_profile_image.jpg

Как я могу быть уверен, что обновленный аватарбудет отображаться мгновенно без проблем с кэшем?

1 Ответ

2 голосов
/ 03 февраля 2014

Если у вас есть модель аватара, ваши URL будут меняться при каждой загрузке нового аватара. Вы также можете сохранить историю аватара для конкретного пользователя. URL-адреса будут выглядеть следующим образом:

https://c28078.ssl.cf3.rackcdn.com/avatar/482/small_profile_image.jpg

Больше нет проблем с кэшированием. Блок кэша для пользователя обновляется при смене аватара. URL аватара уникальны.

...