【问题标题】:html5 offline cache is caching all files instead of cached files that are listedhtml5 离线缓存正在缓存所有文件而不是列出的缓存文件
【发布时间】:2013-04-30 01:23:03
【问题描述】:

我正在尝试使用 html5 的离线缓存。但问题是它正在缓存所有 html 文件,而不是我在缓存清单文件中提到的那些:
例如:我有 4 个 html 文件:index.html、test.html、sample.html、fallback.html 我有sample.appcache 清单文件,其中包含:

CACHE MANIFEST
index.html
sample.html
NETWORK:
test.html
FALLBACK:
/ /fallback.html

我没有在任何 html 文件中设置 manifest="sample.appcache" 属性。我正在使用 JBoss 5 AS,并在 web.xml 中添加了 mime 映射,如下所示:

<mime-mapping>
    <extension>appcache</extension>
    <mime-type>text/cache-manifest</mime-type>
</mime-mapping>

所以只有 index.html 和 sample.html 需要离线缓存,但如果在服务器启动时更早地命中了 test.html,它也会被缓存。当服务器停止而不是这个 test.html 时,fallback.html 没有被调用
这个设置有什么问题?
我不明白的第二件事是在 IE(v9)和 Firefox(v19)上不必设置 mime-mappings 但要让应用程序在 chrome(v26) 和 safari(v5.1.7) 上运行,此设置确实是强制性的。

【问题讨论】:

    标签: html5-appcache


    【解决方案1】:

    我没有使用过 JBoss,但是 Chrome 和 Safari 想要 appcache 的 MIME 类型的原因是因为它无法将其识别为缓存清单。简单的解决方案是只包含它:-P

    至于缓存,您在哪里看到缓存?是否确定存储在离线部分?请记住,无论缓存清单如何,文件仍将正常缓存。

    【讨论】:

    • 停止服务器后,我仍然可以通过点击 url 查看页面:localhost:8080/MyApp/index.html 而之前如果我不使用清单文件,则服务器关闭后无法显示此页面.
    • 使用 Chrome 中的开发工具(PC 上 ctrl + shift + I),有一个资源选项卡,其中有一小部分用于查看资源的存储位置。使用它可以确保文件确实由离线清单缓存存储,而不是其他系统缓存或浏览器缓存。
    • 感谢 chrome 中的提示。加载后备页面时出错“/fallback.html”不正确,它通过删除斜杠来工作,因为在控制台中此页面有 404。我还注意到,要使 safari /firefox 离线工作,html 页面中的 doctype 只需为 html 5 - 这是 chrome 的例外。现在我可以在 chrome 和 safari 的 Resources-“Application cache”选项卡下看到我的 appcache。对于 IE,它仍然无法正常工作。如何在 IE 中调试应用程序缓存是否正常工作? Firefox 中是否还有插件可以像在 chrome 中一样查看此应用程序缓存?
    • 我发现根据w3schools.com/html/html5_app_cache.asp IE 10 支持应用程序缓存并且我安装了 IE9。这可能是原因。
    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 2015-05-05
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多