На прошлой неделе я преобразовал значения img src моей страницы, указывая на файлы изображений, на использование PHP-скрипта для обслуживания изображений. Основная причина заключалась в том, чтобы разместить как файлы, так и BLOB-объекты базы данных в качестве фактического источника.
Теперь, когда пользователь переходит на страницу, иногда изображения отображаются, а иногда нет. Если нет, и страница обновляется\перезагружается, то изображение появляется. Если изображения не отображаются, иногда это изображение, к которому пользователь уже обращался ранее сегодня.
Я в тупике.
Вот тег img:
<img src="../somedir/image_script.php?i=1234">
Файл image_script.php выясняет, откуда взять изображение, а затем заканчивается:
header("Content-type: image/jpeg");
if($from_db){
print $image_blob;
} else {
$im = imagecreatefromjpeg($image_file);
imagejpeg($im,null,100);
imagedestroy($im)
}
Я использую PHP 5.2.8 на IIS 6, используя FastCGI. В файле image_script.php нет заголовков кеша, а также в каталоге, в котором он находится. В настоящее время 99,9% изображений основаны на файлах, поэтому я не знаю, есть ли разница в результате между изображениями на основе базы данных и файлами. . Когда я перехожу непосредственно к image_script.php в своем браузере, он возвращает запрошенное изображение (i=????) в 100% случаев.
a> Любая подсказка относительно того, почему попали и промахнулись с отображаемыми изображениями? а также,
b> как правильно кэшировать изображения, обслуживаемые PHP-скриптом? (они очень статичны)
- Скотт