【问题标题】:Appcache not working应用缓存不工作
【发布时间】:2014-02-21 13:54:58
【问题描述】:

我有一个小型 web 应用程序,我正在开发 HTML5 的 appcache(离线缓存)功能。 以下是我的清单文件代码: 文件名:Manifest1.appcache

CACHE MANIFEST 

 #21/02/14

CACHE:

Login.htm

.........

在我的 Login.htm 中,我只显示简单的文本,并且在 html 开始标记中有 manifest="Manifest1.appcache"

我已经在 IIS 上部署了它,它在 IIS 开启时工作正常,当我停止 IIS 时,我可以访问此页面一次,然后我得到 404。它会触发 (Application Cache Obsolete event)。我不知道为什么,请帮忙。

【问题讨论】:

    标签: html html5-appcache offline-caching


    【解决方案1】:

    不确定是不是这个。但是我的清单文件有问题,它归结为几个文件名拼写错误。您是否尝试过验证清单文件以确保所有文件拼写正确?

    这是一个很好的工具:http://manifest-validator.com/validate 将 url 放入缓存清单中,例如 http://www.yoursite.com/manifest.appcache

    我犯了一些错误,我不小心没有将文件夹包含在图像的路径中。这个工具很好地发现了这些错误。此外,如果您使用 Grunt,则有一个名为 grunt manifest 的 grunt 任务将自动构建清单文件以避免拼写错误等。 https://github.com/gunta/grunt-manifest

    【讨论】:

      【解决方案2】:

      obsolete 事件会在设备在线时触发(或至少在浏览器看起来如此)但无法检索清单文件时触发。所以,关闭服务器并不能正确地模拟离线,因为浏览器仍然认为它是在线的(它是在线的),但它无法检索清单文件,对于浏览器来说,它就像你有一样删除了清单,因此关闭服务器不是您应该测试的方式。模拟离线的最好方法是……离线!关闭设备上的 wifi,然后一切正常。

      还要确保您的服务器配置为使用text/cache-manifest MIME 类型提供.appcache 文件,某些浏览器需要这样做。

      【讨论】:

      • 我已经关闭了 wifi 和 IIS 但仍然没有运气。
      • 也很有可能您没有使用正确的 MIME 类型传输文件。确保您的服务器被配置为发送.appcache 文件的text/cache-manifest MIME 类型。我不确定如何在 IIS 上执行此操作(我只使用过 Apache 和 Node.js),但我认为设置起来并不困难。并且仍然确保您在测试时确实离线。
      • 在 IIS 上设置了 MIME 类型任何其他建议将不胜感激。
      猜你喜欢
      • 1970-01-01
      • 2014-11-02
      • 2018-04-14
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 2016-02-18
      • 2019-08-09
      • 2012-07-07
      相关资源
      最近更新 更多