Как обеспечить кеширование SWF браузером при первой загрузке при обслуживании через HTTP и кластер Mongrel?

У нас есть приложение Rails, которое создает экземпляр SWF-объекта 16 раз (это необходимо сделать, такова природа приложения). Вместо того, чтобы быть загруженным один раз, он загружается 16 раз.

Как обеспечить кэширование этого SWF-файла браузером при первой загрузке? Он обслуживается напрямую из Apache — можем ли мы изменить заголовки HTTP для этого?

Некоторая информация:

  • Браузер кэширует ресурсы с кодом 304.

  • Домен указывает на кластер, и трафик перенаправляется на два сервера (.3 и .4) в кластере.

  • Каждый сервер имеет собственную копию кода с разными временными метками файлов.

  • Если есть какие-либо последующие запросы к SWF, то есть вероятность, что .3 или .4 могут быть использованы, и браузер обрабатывает изображение как измененное на сервере, поскольку временная метка файла изображения отличается.

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


person Intelekshual    schedule 03.09.2009    source источник


Ответы (1)


Попробуйте установить для заголовка Expires достаточно высокое значение. также добавление Cache-Control: max_age=<some high number> поможет.

Apache mod_expires поможет со всем этим.

person Guss    schedule 03.09.2009