本文主要记录的是 manifest 文件所需要的服务器端的支持,包括目前被广泛使用的服务器:Apache / Nginx / Tomcat / GAE。
manifest in html:
<html manifest="example.manifest"> ... </html>
manifest 属性可指向绝对网址或相对路径,但绝对网址必须与相应的网络应用同源。清单文件可使用任何文件扩展名,但必须以正确的 MIME 类型提供,这里只需要将 manifest 的文件类型定义为 text/cache-manifest
即可。
example.manifest :
CACHE MANIFEST
# 2017-04-21 v1.0.0
#第一行,CACHE MANIFEST,是必需的:
#上面的 manifest 文件列出了三个资源:
#一个 CSS 文件,
#一个 GIF 图像,
#以及一个 JavaScript 文件。
#当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件。
#然后,无论用户何时与因特网断开连接,这些资源依然是可用的。
/demo.css
#/logo.png
#/main.js
#下面的 NETWORK 小节规定文件 "login.php" 永远不会被缓存,且离线时是不可用的:
NETWORK:
login.php
#下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件:
FALLBACK:
/html/ /offline.html
下面是常见的服务器系统的配置方式(这里是有的 manifest 文件后缀是 .manifest
):
让 Apache 支持 manifest
新建或者编辑现有的 .htaccess
文件,在里面加上一行:
AddType text/cache-manifest .manifest
让 Nginx 支持 manifest
修改 mime.types
文件,在里面增加 manifest 文件的映射:
text/cache-manifest manifest
让 Tomcat 支持 manifest
修改 web.xml
文件,在里面增加:
<mime-mapping> <extension>manifest</extension> <mime-type>text/cache-manifest</mime-type> </mime-mapping>
让 GAE 支持 manifest
修改 app.yaml
,在里面增加:
- url: /mystaticdir/(.*\.manifest) static_files: mystaticdir/\1 mime_type: text/cache-manifest upload: mystaticdir/(.*\.manifest)