1

我正在使用 Perl 在我的网站上提供动态创建的 GIF 和 PDF。例如:

<img src="file.pl?f=image.gif" />
<a href="file.pl?f=doc.pdf">Document</a>

内容将在访问者的浏览器中缓存一段预定的时间,并在下载前提示访问者打开或保存 PDF。

为此,我发出以下 HTTP 响应标头。

对于 GIF:

HTTP/1.1 200 OK
Status: 200 OK
Content-Type: image/gif
Etag: "MD5 hash"
Expires: Wed, 05 Dec 2012 14:30:00 GMT
Last-Modified: Wed, 05 Dec 2012 14:00:00 GMT
Cache-Control: public, max-age=1800

对于 PDF:

HTTP/1.1 200 OK
Status: 200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="doc.pdf"
Etag: "MD5 hash"
Expires: Wed, 05 Dec 2012 14:30:00 GMT
Last-Modified: Wed, 05 Dec 2012 14:00:00 GMT
Cache-Control: public, max-age=1800
Content-Description: file transfer
Content-Transfer-Encoding: binary

如果我about:cache?device=disk在 Firefox 中导航到,内容会正确缓存在3.6.28及更早版本(Windows 操作系统)中。但是,只有 GIF 被缓存在 Firefox 4+中。

我尝试在安全模式下启动 Firefox 以查看是否是插件导致问题,但 PDF 仍未缓存。我也尝试将内容类型更改为application/pdf,但也没有运气。

有什么建议么?

谢谢。

4

0 回答 0