我正在使用AngularJs框架开发一个Web应用程序。我目前正试图弄清楚如何防止网络缓存,我这样做是通过在我的文件名前设置哈希。
到目前为止我所看到的是,大多数人只对image,javascript和css文件执行此操作,例如:
http://davidtucker.net/articles/automating-with-grunt/#workflowCache
我的问题是,是否还有其他类型的文件需要考虑? Web浏览器也不会缓存html文件吗?
答案 0 :(得分:1)
遵循Google Optimizing Caching的指南。
一些关键点:
积极为所有静态资源设置缓存标头。 对于所有可缓存资源,我们建议使用以下设置:
将上次修改日期设置为资源更改的最后一次:如果上次修改日期在过去足够远,则浏览器可能会获胜。 t重新获取它。
使用指纹识别来动态启用缓存:对于偶尔更改的资源,您可以让浏览器缓存资源,直到服务器上的资源发生变化,此时服务器会告诉浏览器有新版本。您可以通过在其URL(即文件路径)中嵌入资源指纹来实现此目的。当资源发生变化时,其指纹也会发生变化,反之,其URL也会发生变化。一旦URL更改,浏览器就会被强制重新获取资源。指纹识别允许您在未来很长时间内设置到期日期,即使对于更频繁变化的资源也是如此。当然,这种技术要求所有引用资源的页面都知道指纹URL,这可能是也可能不可行,具体取决于页面的编码方式。
阅读Google的完整文章,了解其他方面,特别是有关互操作性的内容。