Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP脚本输出图像,标题不显示缓存+;吉平_Php_Apache_Caching_Gzip_Html5boilerplate - Fatal编程技术网

PHP脚本输出图像,标题不显示缓存+;吉平

PHP脚本输出图像,标题不显示缓存+;吉平,php,apache,caching,gzip,html5boilerplate,Php,Apache,Caching,Gzip,Html5boilerplate,我正在从事html5样板库的一个项目。我调用一个PHP脚本来返回用户的头像图像,使用header()来设置适当的内容类型(“image/jpeg”、“image/png”、“image/gif”是我唯一允许的类型) 当我请求映像时,服务器将以gzip响应,无缓存响应: Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Cache-Control:public Connection:Keep-A

我正在从事html5样板库的一个项目。我调用一个PHP脚本来返回用户的头像图像,使用header()来设置适当的内容类型(“image/jpeg”、“image/png”、“image/gif”是我唯一允许的类型)

当我请求映像时,服务器将以gzip响应,无缓存响应:

Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Cache-Control:public
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:image/jpeg
Date:Mon, 11 Mar 2013 09:18:23 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=92
Pragma:no-cache
Server:Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
Transfer-Encoding:chunked
Vary:Accept-Encoding,User-Agent
X-UA-Compatible:IE=Edge,chrome=1
这显然是不理想的。。。我可以显式设置缓存头,但这并不能解决根本问题。如果我设置contentencoding:identity,它仍然会发送gzip数据,浏览器会感到困惑

…我刚刚测试了另一件事。我在PHP脚本中使用了ini_集('zlib.output_compression','Off'),还重命名了.htaccess文件,我仍然得到了相同的结果。我现在真的很困惑。服务器正在运行带有easyapache的CentOS 5.9(抱歉!)

如何使用PHP脚本提供图像并对其应用适当的缓存和压缩规则


编辑:在我发布这篇文章的那一刻,我当然解决了其中的一部分。。。gzip问题是在一个配置文件中设置了一些简单的规则。删除它们可以让.htaccess文件完成它的工作,至少部分是这样。它仍然在禁用缓存。

我知道这没有用,这就是我想禁用它的原因:)我认为.htaccess文件应该根据响应内容类型设置缓存头,但它似乎没有这样做。(这就是我不解决根本问题的意思——除非我弄错了,否则我不应该明确地设置它们。)啊,你想关闭它吗。很抱歉,误解了这一点。为了解决您问题的一部分,.htaccess文件中指定的缓存头仅适用于Apache自身提供服务的静态资源。没有为恰好发出相同内容类型的PHP资源提供服务是正常的,这可以缓解我的担忧,然后。。。谢谢:)