我的appcache清单测试有什么问题?

NoB*_*ugs 14 php https html5 html5-appcache

我正在尝试测试Appcache清单:

<?php

// reference: http://diveintohtml5.info/offline.html

header( "Content-Type: text/cache-manifest" );
header( "Cache-Control: max-age=0, private, must-revalidate" );

?>CACHE MANIFEST

# todo

/cachetest/tryme/vid/missouristate
Run Code Online (Sandbox Code Playgroud)

现在,这似乎在网络检查器中有正确的标题,并链接到html文件的顶部:

<!DOCTYPE html>
<html manifest="/cachetest/cache.manifest/index.php" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
Run Code Online (Sandbox Code Playgroud)

然而,没有证据表明这实际上是有效的.如果它工作,它应该不显示任何其他物品,除非它在该文件中的网络设置*,如所描述这里:

最后,我们来看一下网络部分.此缓存清单中的网络部分也只有一行,一行只包含一个字符(*).此字符在网络部分中具有特殊含义.它被称为"在线白名单通配标志."这是一种奇特的说法,即只要你有互联网连接,任何不在appcache中的东西仍然可以从原始网址下载.这对于"开放式"离线Web应用程序非常重要.这意味着,当您在线浏览这个假设的离线维护百科时,您的浏览器将正常获取图像和视频以及其他嵌入资源,即使它们位于不同的域中.(这在大型网站中很常见,即使它们不是离线Web应用程序的一部分.HTML页面是在本地生成和提供的,而图像和视频是从另一个域上的CDN提供的.)没有这个通配符标志,我们的假设当你在线时,离线启用的维基百科会表现得很奇怪 - 具体来说,它不会加载任何外部托管的图像或视频!

这看起来像离线工作的类似网络应用程序,但我不得不怀疑我是否必须在localhost或local-ip上设置https以使浏览器甚至可以识别它.

我记得最近看到有关Appcache现在需要https的内容,因为Serviceworker也需要https.我必须在测试环境中设置这个才能在最新的浏览器中工作吗?我可以更改about:config以在普通的http上使用吗?还是我错过了别的什么?

Nik*_*vić 1

你没有做错任何事。

Appcache 在 Firefox 中不起作用。(至少对于 Firefox 42.0 的我来说)

但它在 Chrome 中确实有效(我在 46.0.2490.86(最新)上尝试过)。

一些测试页面:
http://appcache-demo.s3-website-us-east-1.amazonaws.com/without-network/

http://appcache-demo.s3-website-us-east-1.amazonaws.com/with-network/

http://appcache-demo.s3-website-us-east-1.amazonaws.com/offline-iframe/

当然,您可以创建自己的空缓存清单文件并亲自查看。

祝你好运

测试页面来源: http://alistapart.com/article/application-cache-is-a-douchebag