1

我在我的网站上添加了一个缓存清单文件,用于缓存静态内容和更快的加载时间。但是,默认情况下,引用缓存清单文件的页面也会被缓存。我想缓存图像、css 和 js 文件之类的东西,但我不想缓存页面本身,因为它是动态的并且由 PHP 生成。

有没有办法缓存页面上的静态资源,而不是实际页面本身?

4

2 回答 2

2

浏览器应该已经基于这些资源( , 等)的 HTTP 响应中的缓存标头缓存静态资源cache-controlexpires前提是这些标头存在。它们应该看起来像这样:

cache-control:private, max-age=31536000
date:Thu, 02 Aug 2012 14:22:25 GMT
expires:Thu, 02 Aug 2012 14:22:25 GMT

您应该能够使用浏览器的内置开发人员工具、插件或扩展(如 FireBug)或调试代理(如 Fiddler 或 Charles)来查看这些标头。如果它们不存在,许多 HTTP 服务器可以配置为根据您指定的规则自动包含这些标头。如果做不到这一点,您可以实现自己的“处理程序”,它将为资源提供服务并附加触发浏览器缓存所需的标头。

使用 HTML5 缓存清单将向有能力的浏览器发出该页面/应用程序应该可以离线使用的信号。浏览器将存储页面以及清单中引用的项目,以便在没有网络连接的情况下显示它们。

于 2012-08-02T14:24:37.877 回答
1

您可以通过将文件添加到NETWORK缓存清单的部分来强制 Web 浏览器始终下载文件:

NETWORK:
index.php   # index.php will always be downloaded

无论如何,缓存清单是为了允许 HTML5 应用程序脱机工作,所以我可能不建议这样做:您的应用程序将无法脱机工作。

于 2012-08-02T14:25:11.350 回答