我正在尝试使用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)上工作,这个设置确实是强制性的。
答案 0 :(得分:0)
我没有使用JBoss,但Chrome和Safari想要appcache的MIME类型的原因是因为否则它无法将其识别为缓存清单。简单的解决方案就是包含它:-P
至于缓存,你在哪里看到它被缓存?它确实存储在离线部分吗?请记住,无论缓存清单如何,文件仍将像往常一样缓存。