Я работаю с системой кэширования изображений, которая генерирует различные изображения на основе URL-маршрута. Исходные изображения находятся вне корневого каталога документа, а кэшированные версии добавляются в / cache в webroot. Короче говоря, во Flash, если я указываю Loader
на маршрут, я получаю ошибку «Load Never Completed» в первый раз (если кэшированное изображение еще не было сгенерировано).
Error opening URL 'http://characters.dev/cache/Pledges/16107/48_48c/jen001.jpg'
Error #2036: Load Never Completed. URL: http://characters.dev/cache/Pledges/16107/48_48c/jen001.jpg
Кэшированное изображение все еще генерируется, и при следующем запуске приложения фактический файл загружается без ошибок. У меня есть правильные заголовки, отправляемые при создании исходного изображения и его записи, поэтому мне интересно, почему Flash не получает ответ (кажется, работает нормально в окне браузера).
header("Content-type:image/jpeg");
echo $this->getResponse()->setBody(file_get_contents($cachedFile));
Есть идеи как это исправить? Кажется, что ошибки "застряли" во флэш-приложении.
Если это поможет, вот заголовки ответа:
Запрос на создание изображения:
HTTP/1.1 200 OK
Date: Tue, 23 Jun 2009 17:52:49 GMT
Server: Apache
X-Powered-By: PHP/5.2.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=6b746d4ed010c288a824522597698ea2; expires=Fri, 24-Jul-2009 17:52:50 GMT; path=/; domain=.characters.dev
Content-Length: 3575
Content-Type: image/jpeg
Запрос при кэшировании изображения:
HTTP/1.1 200 OK
Date: Tue, 23 Jun 2009 17:53:27 GMT
Server: Apache
Last-Modified: Tue, 23 Jun 2009 17:52:50 GMT
ETag: "24e6c62-df7-a8bd0080"
Accept-Ranges: bytes
Content-Length: 3575
Content-Type: image/jpeg