基本身份验证背后的HTML5清单缓存?

Pet*_*ugh 8 apache html5 caching basic-authentication

我有一个使用HTML5缓存并且工作可爱的网站.

当我使用Basic Auth(.htpasswd)保护站点时,缓存似乎不起作用.理想情况下,我希望该网站为经过身份验证的用户进行缓存.我的理论是,当他们离线访问该站点时,服务器实际上并未被命中,因此显示了缓存版本.

HTML5规范的一部分是,如果页面受到保护,它们不会被缓存吗?我找不到任何参考.

有没有人成功创建过密码保护的可缓存应用程序?

我不确定这是否是特定于浏览器的,但我在Safari中进行测试 - 这是一个iPad应用程序.

提前致谢

Mac*_*Man 5

这实际上是由CORS引起的,因为浏览器将请求视为跨域请求。

一个好的解决方案是添加crossorigin='use-credentials'到清单定义中,如下所示:

<link rel="manifest" crossorigin="use-credentials" href="/manifest.json">
Run Code Online (Sandbox Code Playgroud)

然后,这会将您的凭据传递到清单请求。

有关此设置的更多信息::https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes


Jam*_*son 4

其他一些人在 iOS 3.x 上抱怨同样的问题,并表示将清单文件移到 auth 目录之外似乎可以解决问题: http://lists.apple.com/archives/safari-iphone-web-dev/ 2010年9月/msg00000.html

我能够使用相关文件夹中的 .htaccess 文件解决该问题,如下所示:

AddType text/cache-manifest .manifest
<FilesMatch "your.manifest">
    Order Allow,Deny
    Allow from all
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)