上周我将我的页面 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)
}
我在使用 FastCGI 的 IIS 6 上使用 PHP 5.2.8。image_script.php 文件和它所在的目录上没有缓存头。目前 99.9% 的图像是基于文件的,所以我不知道基于 db 和基于文件的图像之间的结果是否存在差异. 当我在浏览器中直接访问 image_script.php 时,它会 100% 地返回请求的图像(i=????)。
a> 任何关于为什么显示图像的命中和未命中的线索?和,
b> 实际缓存 PHP 脚本提供的图像的正确方法是什么?(它们非常静态)
- 斯科特