软件包内的文件是根据一个被称为缓存清单( cache manifest)的文本文件来发布的。清单文件的第一行必须是CACHE MANIFEST,随后是所有需要被下载到设备上的资源的URL 列表,URL 可以是相对路径或者绝对路径。软件包内的HTML 首页是默认的,并不需要在清单内声明。清单中列举的文件是否存放在同一服务器上并不重要。也就是说,我们完全可以引用jQuery Mobile CDN( 内容分发网络) 上面的框架文件。可以在行首使用# 做行注释。安装时,清单上的任一文件下载失败都会导致软件包无效。这意味着如果将资源部署在第三方服务器上,应用安装会依赖第三方服务器。
举例来说,一个典型的只包含一个 HTML 文档(没有外部页面)的 jQuery Mobile应用清单看起来应该是这样的:
CACHE MANIFEST:
jQuery 核心文件
http://code.jquery.com/jquery-1.6.1.min.js
没有自定义主题的 jQuery Mobile 文件
http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css
http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js
http://code.jquery.com/mobile/1.0/images/ajax-loader.png
http://code.jquery.com/mobile/1.0/images/icons-18-black.png
http://code.jquery.com/mobile/1.0/images/icons-18-white.png
http://code.jquery.com/mobile/1.0/images/icons-36-black.png
http://code.jquery.com/mobile/1.0/images/icons-36-white.png
Web 应用自定义的文件,路径是相对于 HTML 文档的地址
images/logo.png
data/countries.json
清单文件的名字通常叫 offline.appcache,并且只有以text/cache-manifest 的MIME 类型提供给客户端才能生效。如果不知道如何设置MIME 类型,你应该联系服务器管理员。如果服务器支持PHP,那么只需要把文件的扩展名改成.php,然后使用下面这个模
版,不需要其他特殊配置就能生效了:
<?php header('Content-Type: text/cache-manifest');
?>CACHE MANIFEST:
下一步需要在 HTML 文件中定义清单文件的URL, 这是通过设置 html 元素的manifest 属性来完成的,这也是HTML5 新引入的一个属性。
<html manifest="offline.appcache">
<-- 应用的正文 -->
</html>