我正在使用应用程序缓存使我的网站也脱机工作。
我的清单类似于此,并使用<iframe>嵌入:

CACHE:
favicon.ico
assets/css/style.css
assets/js/libs/zepto.js
assets/js/app.js

NETWORK:
*

FALLBACK:
/ offline.html

当我切断互联网连接时,一切都通过offline.html页面提供。
但刚才我发现,每404个(例如,一个从未存在的服务器上的URL)也使用清单中的回退部分显示FuliN.HTML。
有没有办法区分脱机(在这种情况下,offline.html是正确的选择)和返回404的服务器(在这种情况下,我只想显示404错误)?

最佳答案

如果原始请求…
…导致重定向到具有另一个源(表示捕获门户)或4xx或5xx状态代码或等效代码的资源,或者如果存在网络错误
(来自http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#changesToNetworkingModel
不幸的是,当回退发生时,没有理由找出原因。无法区分500、404、重定向或失败连接。
这里有一个简单的解决方法:

FALLBACK:
/connection-test.js connection-failed.js
/ offline.html

您可以在offline.html页面中嵌入connection-test.js。connection-test.js加载表示用户有连接,connection-failed.js加载表示没有连接。

09-20 21:17