软件包内的文件是根据一个被称为缓存清单(
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>