2

对于我的移动应用程序,我想使用 pushState 和 AppCache,但这似乎很棘手。

为了使 pushState 工作,我的 Web 服务器将每个 url(除了清单文件本身、图像、css 和 js 文件等资产)重定向到/index.html内部。

例如,请求将分别/articles/123重定向到(因此最初请求的 URL 在浏览器中仍然可见)。//index.html

这会导致对 的请求 到manifest.appcache错误的路径,例如/articles/123/manifest.appcache而不是/manifest.appcache,这导致浏览器为每个直接访问的 URL(例如通过 Google 搜索)创建一个新的缓存组的问题

我重定向(.*)/manifest\\.appcache/manifest.appcache并对其进行了解释,因此应该可以按预期工作。我认为主要问题是浏览器manifest.appcache在 URL 级别而不是域级别上处理文件。

因此,这导致我提出以下问题:

  1. 这是一种可行的方法吗?

  2. 如果是,我可以告诉浏览器在域级别使用 AppCache 吗?如何?

  3. 如果没有,我没有考虑什么?

4

1 回答 1

2

当您将manifest属性放在<HTML>元素上时,只需正确设置路径以指向根目录:

<html manifest="/appcache.manifest">
于 2013-07-08T16:42:28.423 回答