AppCache不交换index.html

时间:2016-01-12 07:27:17

标签: html html5 google-chrome http-headers html5-appcache

我一直在使用带有未更改index.html的appcache很长一段时间。它没有在清单中明确列出,但无论如何都被缓存为主条目。

现在index.html发生了变化,我遇到了这个问题:

所有资源都已正确获取和缓存,但主条目仍旧,网站中断。我尝试在清单中明确列出index.html。 Chrome devtools很好地展示了这个难题:

Chrome devtools

旧的index.html仍然是主人。新的显式缓存但不交换。

如Chrome中所述,会发生此错误。 FF和Safari工作正常。 IE 11显示“服务器上不存在资源”和“Appcache致命错误”。

清单看起来像这样:

CACHE MANIFEST
# vX.X.X

NETWORK:
*

CACHE:

index.html
app.js
app.json
favicon.ico
... (+100 more files)

2 个答案:

答案 0 :(得分:0)

找到它:

要修复框架错误,我有一个服务器端重定向来添加查询字符串参数。将appcache从https://example.com交换到https://example.com?myparam会破坏Chrome和IE中的appcache。

答案 1 :(得分:0)

面对同样的问题并在没有服务器端操作的情况下解决了它。

所以您只需要在<head>标记中添加脚本:

<script type="text/javascript">
    window.applicationCache.addEventListener("updateready",
        (event) => { window.location.reload(true) });
</script>

如果您感兴趣,可以在我的帖子中找到一些解释: AppCache doesn't swap index.html file