如何关闭HTML5离线缓存

如何关闭HTML5离线缓存,html,offline-caching,offline-browsing,Html,Offline Caching,Offline Browsing,我在我的网站上使用HTML5离线缓存已经有一段时间了,出于某些原因,我正在考虑关闭它。令我惊讶的是,它不起作用 这就是我实现HTML5离线缓存的方式 在我的index.html中,我给出了清单文件的路径 <html manifest="app.manifest"> 在app.manifest文件中,我列出了我希望浏览器缓存以供脱机使用的所有js/css/png文件。每次部署更新时,我都会更新app.manifest文件,这会导致浏览器获取清单文件中列出的所有文件的最新版本 为了

我在我的网站上使用HTML5离线缓存已经有一段时间了,出于某些原因,我正在考虑关闭它。令我惊讶的是,它不起作用

这就是我实现HTML5离线缓存的方式

在我的
index.html
中,我给出了清单文件的路径

<html manifest="app.manifest">

在app.manifest文件中,我列出了我希望浏览器缓存以供脱机使用的所有js/css/png文件。每次部署更新时,我都会更新app.manifest文件,这会导致浏览器获取清单文件中列出的所有文件的最新版本

为了关闭脱机缓存,我将index.html的开始标记改为

<html>

我对app.manifest文件进行了虚拟更改,这样浏览器(已经缓存了我的网站)将检测到更改并下载所有文件的最新版本(包括index.html)

我注意到的是,浏览器确实获得了所有文件的最新版本。我在更新版本中看到了新的
标记,但没有声明清单,但是浏览器在将来更改时的行为不会改变。i、 e.我现在希望浏览器在服务器上更改index.html文件时立即获取该文件的新版本。然而,这并没有发生。在我对清单文件进行任何更改之前,浏览器不会下载更新的index.html

因此,在我看来,浏览器已经将app.manifest文件与我的网站URL永久关联,即使我在
标记中没有提到它,它也不会删除它

我在Google Chrome和Firefox上都测试过,结果相同。我还尝试重新启动Chrome,但它不会忘记我的网站曾经为它定义过app.manifest。我还没有发现任何关于web上脱机缓存这方面的讨论

更新:我通过清除所有浏览数据(通过进入设置)成功摆脱了Chrome中的行为。但我不能告诉用户这样做。

让清单URL返回404,表示您不再需要脱机web应用程序。根据的步骤5,这会将缓存标记为已过时,并将其删除


您还可以在Chrome中手动删除脱机web应用程序,方法是转到
about:appcache internals

fableus。在过去,我曾尝试从服务器上删除app.manifest,但没有成功。我再次尝试,并转储了标题,结果发现它并没有返回404,而是返回一个302到404重定向页面。在我将服务器更改为显式返回404后,脱机缓存已过期。谢谢如果您想在特定条件下禁用缓存,这也非常有用。伟大的提示!!!!!这似乎对我不起作用。我尝试了html manifest=“IGNORE.manifest”>(其中IGNORE.manifest不存在并返回404)。该应用程序(一度被缓存)仍在Chrome和我的Android浏览器中显示。我做得对吗?@antun清单URL是浏览器查询的第一件事(如果清单没有更改,则是唯一的一件事)。更改应用程序的某些部分(如索引页)没有任何效果。您必须将服务器配置为返回404作为旧清单URL。谢谢。但除了更改manifest属性外,我还从服务器上删除了旧的manifest文件(称为cache.manifest)。所以如果我尝试访问它,我会得到一个HTTP404。我在各种设备上进行了测试,它们都继续缓存应用程序的旧版本。(在Chrome中,我可以手动删除应用缓存,并看到新站点。但在我的移动设备中,我不能这样做)。