gpt4 book ai didi

html - 缓存 list 在使用跨域引用和 SSL 的 safari 中不起作用

转载 作者:搜寻专家 更新时间:2023-10-31 23:23:01 25 4
gpt4 key购买 nike

我一直在尝试让我的 HTML5 离线缓存 list 在使用 HTTPS 访问网站时在 Safari 中正常工作。

我有以下设置:

index.html:

<!doctype html>
<html lang="en" dir="ltr" manifest="app.appcache">
<head>
<base href="https://www.example.com">
<link rel="stylesheet" href="//some.cdn.com/styles.css" charset="utf-8">
<script src="//some.cdn.com/app.js"></script>
</head>
<body>
</body>
</html>

应用程序缓存

CACHE MANIFEST
//some.cdn.com/styles.css
//some.cdn.com/app.js

NETWORK:
*

通过 HTTP 访问我的网站 工作正常! Assets 被正确加载和缓存;我可以离线使用我的应用

在 Chrome 中通过 HTTPS 访问我的网站也可以正常工作

在 Safari 中通过 HTTPS 访问我的网站 中断 :-( Assets 正常加载,但不会缓存。调试没有让我更进一步。日志中没有有用的信息

根据规范,允许在缓存 list 中引用另一个域。

我还尝试在我的 HTML 和 list 中明确使用 http://或 https://,而不是//-notation。没用。

在我的在线搜索中,我发现了一些关于跨域请求的评论,缓存 list 中不允许这样做,但根据 W3C 规范,这是允许的(事实证明,我测试的浏览器它正确缓存了所有 Assets ,https 和 safari 组合除外。

最佳答案

显然我错过了应用缓存的一个重要限制。如 https://www.w3.org/TR/2011/WD-html5-20110525/offline.html 中所述:

If the manifest's is https: or another scheme intended for encrypted data transfer, then all URLs in explicit sections must have the same origin as the manifest itself.

关于html - 缓存 list 在使用跨域引用和 SSL 的 safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36802221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com