Браузер не может кэшировать SWF-файл - PullRequest
1 голос
/ 16 ноября 2009

У меня проблема с браузером, не кэширующим SWF-файл.

В моей конфигурации apache есть следующее:

 ExpiresByType application/x-shockwave-flash "access plus 2 months"

Я вижу, что заголовки, возвращающиеся из исходного запроса SWF, выглядят так (заголовок expires выглядит так, как будто он установлен правильно):

Запрос:

User-Agent  Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
Accept  HTTP Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip,deflate
Cookie  auth_token=

Ответ:

Server  Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.5 with Suhosin-Patch proxy_html/3.0.0 mod_ssl/2.2.8 OpenSSL/0.9.8g Phusion_Passenger/2.2.5
Last-Modified   Sat, 14 Nov 2009 04:48:19 GMT
Etag    "49384-4784d7c3c8ac0"
Accept-Ranges   bytes
Content-Length  299908
Cache-Control   max-age=5184000
Expires Fri, 15 Jan 2010 20:25:42 GMT
Content-Type    application/x-shockwave-flash

Однако при последующих загрузках страницы браузер по-прежнему отправляет запросы If-Range для SWF следующим образом:

Запрос:

User-Agent  Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
Accept  HTTP Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip,deflate
Cookie   auth_token=
Range   bytes=0-
If-Range    "49384-4784d7c3c8ac0"

Ответ:

Server  Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.5 with Suhosin-Patch proxy_html/3.0.0 mod_ssl/2.2.8 OpenSSL/0.9.8g Phusion_Passenger/2.2.5
Last-Modified   Sat, 14 Nov 2009 04:48:19 GMT
Etag    "49384-4784d7c3c8ac0"
Accept-Ranges   bytes
Content-Length  299908
Cache-Control   max-age=5184000
Expires Fri, 15 Jan 2010 20:25:45 GMT
Content-Range   bytes 0-299907/299908
Content-Type    application/x-shockwave-flash

Эти последующие запросы, по-видимому, отправляют Etag в заголовке If-Range и получают 206 ответов со всем содержимым. Я попытался установить apache, чтобы сбросить заголовок Accept-Ranges и Etags, но браузер повторно запросит файл в любом случае.

Кто-нибудь видел что-то подобное раньше и знает, что нужно сделать, чтобы получить SWF-файл для кеширования?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...