具有重写 URL 的脱机 Web 应用程序



使用应用程序缓存,我可以很容易地使我的web应用程序离线可用,它工作完美。我遇到的问题是,我最近开始使用.htaccess文件从

重写url。
http://www.example.com/?/page

http://www.example.com/page

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

支持service worker的浏览器*会将service worker的存在作为触发器,禁用service worker作用域下页面的应用缓存功能。参见Service Worker打算取代还是与apache共存?

我理解如何使用service worker来重写url之类的东西是独立于离线用例的,因此不应该干扰应用缓存,但是没有标志可以用来说"嘿,这是一个与应用缓存配合得很好的service worker,所以让我两者都用。"

*这适用于Google Chrome。当其他浏览器添加对service worker的支持时,它们可能会有不同的应用缓存策略。