我的应用程序缓存清单测试有什么问题?

问题描述 投票:19回答:2

我正在尝试测试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

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

<!DOCTYPE html>
<html manifest="/cachetest/cache.manifest/index.php" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

但是,零证据表明这确实有效。如果它正在运行,则它不应显示任何其他项目,除非它在该文件中具有NETWORK *设置,如here中所述:

最后,让我们研究一下网络部分。中的网络部分此缓存清单也只有一行,其中包含只是一个字符(*)。此字符在网络部分。它被称为“在线白名单通配符标志”。这是一种怪异的说法,它表示应用程序缓存中没有的任何内容只要您仍然可以从原始网址下载有互联网连接。这对于“开放式”很重要离线Web应用程序。这意味着,当您浏览此内容时假设离线启用了Wikipedia,您的浏览器将获取图像和视频以及其他嵌入式资源,即使它们正常在不同的域上。 (这在大型网站中很常见,即使它们不是离线网络应用程序的一部分。 HTML页面是在本地生成和投放,而图像和视频则从另一个域上的CDN。)如果没有此通配符标志,我们的假设启用离线功能的Wikipedia在您上网时的行为会很奇怪—特别是,它不会加载任何外部托管的图像或视频!

这看起来像可脱机工作的类似Web应用程序,尽管我想知道是否必须在本地主机或本地IP上设置https才能使浏览器识别它。

[我记得最近看到了一些有关Appcache的信息,现在要求https,而Serviceworker也需要https。我是否必须在测试环境中进行设置才能使其在最新的浏览器中运行?我可以将about:config更改为在纯http上使用吗?还是我想念其他东西?

php html https html5-appcache
2个回答
0
投票

您没有做错任何事情。

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


0
投票

检查以下步骤以查看代码为何不起作用,然后也许代码将起作用。

  • 您正在使用php文件,但清单文件的建议文件扩展名是:“。appcache”
  • 如果使用.appcache,则不需要设置标题,浏览器将为text/cache-manifest扩展名获得.appcache标题。
  • 清单中的第一行是CACHE MANIFEST,是必需的。因此请先删除php代码。
  • [CACHE MANIFEST]部分仅获取JS,CSS,图像等资源。我认为您输入的页面名称不正确。

并且在检查了上述步骤之后,清单可能会准备如下。

名称将是:index.appcache

CACHE MANIFEST
# todo
/cachetest/images/1.jpg
/cachetest/css/style.css

NETWORK:
/login.php

FALLBACK:
/html/ /cachetest/offline.html
<!DOCTYPE html>
<html manifest="/cachetest/cache.manifest/index.appcache" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

例如,给出文件列表的名称。

© www.soinside.com 2019 - 2024. All rights reserved.