我在我的网站上添加了一个缓存清单文件,用于缓存静态内容和更快的加载时间。但是,默认情况下,引用缓存清单文件的页面也会被缓存。我想缓存图像、css和js文件,但我不想缓存页面本身,因为它是动态的,由PHP生成。
是否有任何方法可以缓存页面上的静态资源,而不是实际页面本身?
浏览器应该已经根据HTTP响应中的缓存标头缓存静态资源(cache-control
、expires
等),前提是存在标头。它们应该看起来像这样:
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应用程序离线工作的,所以我可能不太清楚:你的应用程序无法离线工作。