php文件是php文件,图片是图片。你要改apache的设置。将图片的缓存去掉。

解决方案 »

  1.   

    在Apache Server配置文件(httpd.conf)中加入下面几句试试: ExpiresActive On
    header append cache-control: "no-cache"
    header append pragma: "no-cache"
    header append expires: "-1"
      

  2.   

    图片缓存不是web服务器控制,是浏览器自己判断的
    如果图片大小、文件名、类型都一样,就会先搜索本地cache
    解决方法,在不需要被cache的图片文件名后加点东西,比如<img src="abcd.gif?随机数">,就像这个帖子的URL最后的?temp=.xxxxxxxx一样
      

  3.   

    不同的浏览器只接受不同的缓存控制指令,通常要多写几个
    我一般写做
    header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
    header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
    header ("Pragma: no-cache");                          // HTTP/1.0
    注意用header发出的头,可以覆盖web服务器发出的头,一般可被meta标记覆盖
    但是meta标记不能覆盖覆盖web服务器发出的头
    这是一个非常奇怪的现象另外,测试前你需要先清空浏览器缓冲区。即便是在浏览器中设置禁用缓冲区后,也同样要先清空浏览器缓冲区后才能生效浏览器总是表现的那样懒惰,只要缓冲区中有,就不肯到网上去下
      

  4.   

    在你的apache设置里找到这句
    LoadModule expires_module modules/mod_expires.so
    加上#号
    #LoadModule expires_module modules/mod_expires.so
    包你不会再缓存任何文件。除非你手工加上缓存的文件头。
      

  5.   

    在图片名称加一个参数 <img src="aaa.gif"?aa=随机数>