在 IIS 7.5 中,当我没有启用输出缓存时,我的 php 脚本成功地在 Cache-Control 标头中设置了浏览器缓存:
Cache-Control: max-age=43200,public
Content-Type: text/html
Expires: Wed, 30 May 2012 22:15:18 GMT
服务器: Microsoft-IIS/7.5
X-Powered-By: PHP/5.4.3
日期:星期三,2012 年 5 月 30 日 10:15:18 GMT
连接:关闭
内容长度:5105
但是,如果我为 .php 文件启用输出缓存,我会得到以下标头:
Cache-Control: no-cache,max-age=43200,public
Content-Type: text/html
Expires: Wed, 30 May 2012 22:25:34 GMT
服务器: Microsoft-IIS/7.5
X-Powered-By: PHP/ 5.4.3
日期:2012 年 5 月 30 日,星期三 10:25:34 GMT
连接:关闭
(注意“no-cache”在我的 php 脚本工作之前被添加到 Cache-Control 中)
我发现,如果为文件类型启用了输出缓存,则无法防止将“无缓存”添加到 Cache-Control 键中。我试图在 web.config 文件中做到这一点:
<customHeaders>
<remove name="X-Powered-By" />
<remove name="Cache-Control" />
<add name="Cache-Control" value="public" />
</customHeaders>
那是行不通的。为什么这必须如此相互排斥?我想同时启用输出缓存和浏览器缓存。