在缓存清单文件HTML5的FALLBACK部分中使用通配符

ash*_*shb 3 html5 offline web-applications application-cache

如何创建启用脱机的Web应用程序,以便在用户访问hxxp:// mywebsite /并且脱机时显示hxxp:// mywebsite/offline /.[我的网站上有大约100个不同的动态页面,因此我无法在缓存清单文件中对所有这些页面进行硬编码]

ggu*_*erg 7

我引用"manifest.php"而不是"cache.manifest",然后我的php文件如下所示:

<?php
    header('Content-Type: text/cache-manifest');
    echo "CACHE MANIFEST\n";

    $hashes = "";

    $dir = new RecursiveDirectoryIterator(".");
    foreach(new RecursiveIteratorIterator($dir) as $file) {
        $info = pathinfo($file);
        if ($file->IsFile() &&
            $file != "./manifest.php" &&
            substr($file->getFilename(), 0, 1) != ".")
        {
            echo $file . "\n";
            $hashes .= md5_file($file);
        }
    }

    echo "# Hash: " . md5($hashes) . "\n";

?>
Run Code Online (Sandbox Code Playgroud)

文件哈希使其保持最新,以便在任何文件更改清单更改时也是如此.希望有帮助:)


小智 5

CACHE MANIFEST
CACHE:
/Offline/OfflineIndex.html

FALLBACK:
/ /Offline/OfflineIndex.html

NETWORK:
*
Run Code Online (Sandbox Code Playgroud)

这将导致整个站点上的所有页面在脱机时重定向到脱机状态.唯一的问题是声明清单的页面,因为该页面总是被缓存.这意味着您无法在每个页面上声明清单,因为每个访问过的页面都将自行缓存而不是重定向.因此,您可以做的是在另一个html文件(IE.Synchronize.html)上声明您的清单,然后从默认情况下通过存储cookie或localcache值来检查您的应用程序是否可用于脱机.如果未使用声明的清单重定向到synchronize.html,请设置localcache值,然后重定向回index.

OFFLINE AWESOMENESSSSSSSSSSS !!!!