0

当您在一个浏览器中使用了一组资产但在另一个浏览器中没有使用时,任何人都对如何最好地处理使用 App Cache 有任何建议?

示例:Firefox 的 OGG 音频和 IE 的 MP3。我可以缓存这两种类型的文件,但音频很大,存储的文件数量是浏览器可以使用的两倍。

我最好的想法是创建几个不同的清单。例如,一个加载所有浏览器通用的资产,然后是一个单独的清单,例如 MP3,并在 iframe 中加载一个页面,一旦我可以在客户端确定他们正在使用 IE,就会调用这个清单。但是,如果我发现他们使用的是 Firefox,我可以在 iframe 中加载另一个页面(带有附加的 OGG 清单)。

这会起作用还是有更优雅的解决方案?

4

1 回答 1

0

现在我只是使用这样的 nginx 重写规则

location / {
    if ($http_user_agent ~ Firefox) {
        rewrite ^.*\/(app.manifest)$ $scheme://$http_host/moz.manifest redirect;
    }
}

大多数 Web 服务器将允许您定义类似的重写规则。这是一个不错的选择,因为它速度很快,并且不需要任何进一步的软件安装。

这个人正在检查使用 PHP 的浏览器,但您可以使用任何框架来执行此操作,最好是像Node或普通 ruby​​ Rack 这样的快速框架。

于 2011-12-25T18:09:07.997 回答