IE和Edge浏览器关闭后,应用程序缓存无法正常工作

14
我有一个Web应用程序,部分支持离线模式。
我的appcache文件看起来像这样:
CACHE MANIFEST

# Datestamp 2015-10-07 GIT14a6ade78ef2ab6434871e90f7f1e70784bc1536

CACHE:

/offline/
/bundles/agrihealthahp/css/admin.css
/bundles/agrihealthahp/css/print.css
/bundles/agrihealthahp/css/offline-language-english.css
/bundles/agrihealthahp/css/offline-language-english-indicator.css
/bundles/agrihealthahp/css/offline-theme-default.css
//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css
//code.jquery.com/ui/1.11.2/themes/le-frog/jquery-ui.css
/bundles/bmatznerfoundation/css/foundation.min.css
//fonts.googleapis.com/css?family=Open+Sans+Condensed:300
/apple-touch-icon.png
/apple-touch-icon-57x57.png
/apple-touch-icon-72x72.png
/apple-touch-icon-76x76.png
/apple-touch-icon-114x114.png
/apple-touch-icon-120x120.png
/apple-touch-icon-144x144.png
/apple-touch-icon-152x152.png

/combine.c6f06a9f43e79d6d26af18e22b205cf4.js
/bundles/bmatznerfoundation/js/vendor/jquery.js
/bundles/bmatznerfoundation/js/foundation/foundation.js
/bundles/bmatznerfoundation/js/foundation/foundation.reveal.js
/bundles/agrihealthahp/js/offline-simulate-ui.min.js
//code.jquery.com/ui/1.11.2/jquery-ui.min.js
https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js
https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.4.0/moment-timezone.min.js
/bundles/agrihealthahp/images/dib-8d.png
/bundles/agrihealthahp/images/dib-9da.png
/bundles/agrihealthahp/images/dib-10d.png
/bundles/agrihealthahp/images/dib-10da.png
/bundles/agrihealthahp/images/dib-undefined.png

NETWORK:
*

FALLBACK:

/ /fallback.html

在Chrome上,一切都正常,包括能够关闭浏览器,然后在离线时使用www.domain.com/anything再次打开它,这将返回到备用URL。此外,我可以访问/offline/并使用应用程序。

在Firefox、IE11和Edge浏览器中,关闭浏览器并重新打开不起作用。

这是我的设置中的错误还是应该正常工作?


我假设你已经正确地添加了清单属性 <html manifest="appcache.manifest">,并使用UTF-8编码,并以text/cache-manifest MIME类型提供了服务,是吗? :) - securecodeninja
它在这里:http://ahp.agrihealth.co.nz/bundles/agrihealthahp/offline.appcache,我使用http://manifest-validator.com/进行了验证。无法在网站上展示给您,但是我上面描述的在Chrome上可以工作。 - jdog
你能够包含那个正在加载这个appcache文件的HTML页面的代码吗? - Eric
Will do in the next 8 hours - jdog
1个回答

2

需要检查以下几个问题:

  1. 确保您的扩展名是 .appcache 并在 HTML 中进行定义,如下所示:

    <!DOCTYPE html> <html lang="en" manifest="/offline.appcache"> </html>

根据 http://html5doctor.com/go-offline-with-application-cache/ 的说法,.appcache 是标准格式。

  1. 通过 Chrome 调试器访问 appcache 文件时,请确认其 MIME 类型为 text/cache-manifest——如果不是,请确保您的 Web 服务器处理 .appcache MIME 类型。对于 Apache,可以在配置文件中使用以下命令行完成:

    AddType text/cache-manifest .appcache

  2. 我不知道缩写符号 // 是否在清单文件中可用(我无法找到支持它的证据)。请尝试使用 https:// 提供外部 URL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接