重写 URL 的离线 Web 应用程序

Offline web application with rewritten URL's

使用应用程序缓存,我可以轻松地使我的 Web 应用程序脱机可用并且它运行良好。我遇到的问题是我最近开始使用 .htaccess 文件从

重写 url

http://www.example.com/?/page

http://www.example.com/page

加载 'homepage' 后,原则上一切仍然有效(因为所有页面都是通过 Ajax 加载的),但本地书签等不起作用。有没有什么方法可以通过一个简单的 service worker 添加此功能,同时仍然依赖应用程序缓存来实现其余的离线功能(从而允许 Firefox 和 Safari 回退到应用程序缓存,而 Chrome 和 Opera将完美脱机工作)。

支持 service worker* 的浏览器使用 service worker 的存在作为触发器来禁用 service worker 范围内页面的应用程序缓存功能。参见

我理解如何使用服务工作线程来重写 URL 等独立于离线用例,因此不应该干扰应用程序缓存,但是没有标志可以用来说明 "Hey, this is a service worker that plays nicely with App Cache, so let me use both."

* 这适用于 Google Chrome。由于其他浏览器增加了对服务工作者的支持,它们在应用程序缓存方面可能有不同的政策。