我正在使用Zend_Controller_Response
对象将图像输出到浏览器。我打算将缓存应用于镜像,但是某些原因导致Cache-Control header 被覆盖。
我的代码如下:
$this->getResponse()
->setHeader('Last-Modified', $modifiedTime, true)
->setHeader('ETag', md5($modifiedTime), true)
->setHeader('Expires', $expires, true)
->setHeader('Pragma', '', true)
->setHeader('Cache-Control', 'max-age=3600')
->setHeader('Content-Type', $mimeType, true)
->setHeader('Content-Length', $size, true)
->setBody($data);
输出(在Firebug中查看)为:
响应标题
请求 header
如您所见,缓存控件被修改为包括:
我怀疑是在请求中发送的 session cookie。有人知道一种发送我所需的 header 的方法,但仍将 session 保留在请求中吗?我的应用程序通过 bootstrap 运行,并且使用Zend_Session处理 session 。
任何帮助,将不胜感激。
最佳答案
从Zend_Controller文档的10.9. The Response Object部分
您遇到的问题是,将max-age = 3600追加到了高速缓存控制 header 中,而不是替换它。尝试将 $ replace 参数设置为 true 。