【发布时间】:2012-08-02 03:02:01
【问题描述】:
我在我的网站上添加了一个缓存清单文件,用于缓存静态内容并加快加载速度。但是,默认情况下,引用缓存清单文件的页面也会被缓存。我想缓存图像、css 和 js 文件之类的东西,但我不想缓存页面本身,因为它是动态的并且由 PHP 生成。
有没有办法缓存页面上的静态资源,而不是实际页面本身?
【问题讨论】:
标签: html offline cache-manifest
我在我的网站上添加了一个缓存清单文件,用于缓存静态内容并加快加载速度。但是,默认情况下,引用缓存清单文件的页面也会被缓存。我想缓存图像、css 和 js 文件之类的东西,但我不想缓存页面本身,因为它是动态的并且由 PHP 生成。
有没有办法缓存页面上的静态资源,而不是实际页面本身?
【问题讨论】:
标签: html offline cache-manifest
浏览器应该已经根据这些资源(cache-control、expires 等)的 HTTP 响应中的缓存标头缓存静态资源,前提是这些标头存在。它们应该看起来像这样:
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 缓存清单将向有能力的浏览器发出信号,表明该页面/应用程序应该可以离线使用。浏览器将存储页面以及清单中引用的项目,以便在没有网络连接的情况下显示它们。
【讨论】:
您可以通过将文件添加到缓存清单的 NETWORK 部分来强制您的 Web 浏览器始终下载该文件:
NETWORK:
index.php # index.php will always be downloaded
无论如何,缓存清单是为了允许 HTML5 应用程序脱机工作,所以我可能不这样做:您的应用程序将无法脱机工作。
【讨论】: