【问题标题】:forcing browser to cache images in php website强制浏览器在php网站中缓存图像
【发布时间】:2011-10-08 11:00:34
【问题描述】:

我有一个基于 php 的网站,并希望浏览器将图像缓存 30 天。我正在使用共享托管解决方案,我无法访问 apache 配置来启用 mod-headers 或其他模块,所以可以不要为此使用 htaccess 机制。

我的网站是一个普通的 php 应用程序,并且有 html 内容和图像。我希望浏览器只缓存图像。我已经看到了 php 的“header”功能,但找不到强制图像缓存的方法。我该怎么做?

谢谢

【问题讨论】:

标签: php image caching browser header


【解决方案1】:

据我所知,如果您无法访问 Apache 来设置标题,那么您唯一的其他选择是从 PHP 脚本提供图像,这样您就可以使用 PHP Header 方法来设置标题。

在这种情况下,您需要编写一个 PHP 图像处理程序,并将所有图像标签替换为对该处理程序的调用(例如 http://mysite.com/imagehandler.php?image=logo.png)。然后,您将让 imagehandler.php 脚本从文件系统中检索图像,设置 mime 类型和缓存控制标头,并将图像流式传输回客户端。

您可以自己编写,或者如果您 google,您会找到图像处理程序 PHP 脚本。无论哪种方式,请确保您专注于安全 - 不要让客户端从您的 Web 服务器检索任意文件,因为这将是一个相当大的安全漏洞....

【讨论】:

  • 哇!那将是太大的变化..顺便说一句,仅通过设置标头缓存年龄将缓存整个页面(包括数据)?
  • HTTP 标头适用于每个请求 - 所以不,我不认为您可以将页面设置为缓存它的所有子项。是的,这是一个很大的变化......
猜你喜欢
  • 1970-01-01
  • 2010-11-20
  • 2010-09-12
  • 2018-06-22
  • 2023-04-01
  • 1970-01-01
  • 2018-08-17
相关资源
最近更新 更多