Chrome积极缓存HTML与.manifest文件



我使用.manifest文件来告诉浏览器缓存哪些资源。基本包含以下内容:

CACHE MANIFEST
# This manifest was generated by grunt-manifest HTML5 Cache Manifest Generator
# Time: Fri Jul 24 2015 09:57:13 GMT+0100 (BST)
CACHE:
app.min.js
app.min.css
js/libs/require-min.js
img/leaf.png
NETWORK:
*

该文件在HTML中的链接如下:

<!DOCTYPE html>
<html manifest="/app.manifest">
    <head>
        <style type="text/css" media="all">
    ....

根据Safari用户的报告,他们的UI不尊重缓存文件,我在阅读Safari要求清单文件具有.manifest扩展名后,将文件名从manifest.appcache更改为app.manifest

我现在看到(特别是在Chrome中)浏览器没有重新获取HTML源,所以没有看到清单文件已经改变,所以没有加载新的app.manifest文件,并且无法下载任何源。/index HTML文件的缓存头(Expires, ETagLast-Modified)都改变了,文件的内容也改变了,但Chrome拒绝重新获取HTML,除非通过devtools禁用缓存。

有谁知道为什么Chrome是如此积极地持有这些缓存的HTML?有什么办法让它重新取回吗?

确保/manifest。Appcache返回404,这让浏览器明白它现在已经过时了,他们会删除所有本地缓存并在下次重新加载页面,所以他们会在新的位置获得它。

您需要对旧的清单文件(manifest.appcache)进行更改。你的/index文件是appcache的一部分,它仍然被Chrome使用。

来自HTML5推荐:

注意:也鼓励作者在manifest中包含主页,但实际上,引用清单的页面是自动的缓存,即使没有明确提到。

Chrome得到旧的清单,没有变化,所以它继续。尝试添加一个随机注释到manifest.appcache,然后再试一次。

相关内容

  • 没有找到相关文章

最新更新