mck*_*mey 9 html5 application-cache offline-web-app
我正在阅读有关HTML5应用缓存清单的详细信息(特别是来自这篇优秀的文章).我很好奇这个想法是否有用:
我们在子域内的CDN上托管所有静态资源(脚本,CSS,字体,图像)(例如cdn.example.com和app在www.example.com上).是否可以在CDN上托管应用缓存清单?例如,
<!doctype html>
<html manifest="http://cdn.example.com/appcache.manifest">
...
<script src="http://cdn.example.com/foo.js"></script>
...
</html>
Run Code Online (Sandbox Code Playgroud)
如果是,清单列表是否可以来自CDN根目录?例如,在清单中:
CACHE MANIFEST
/foo.js
Run Code Online (Sandbox Code Playgroud)
有没有人有这方面的经验和/或知道任何警告?
编辑: WHATWG规范的工作草案它说" 脱机应用程序缓存清单可以使用绝对路径甚至绝对URL ",然后显示一个带有图像的CDN URL的示例.
Kim*_*Kha 12
我测试了我的清单(在实例中)
CACHE MANIFEST
# 2010-06-20:v1
iscroll.js
http://peach.blender.org/wp-content/uploads/big_big_buck_bunny.jpg
Run Code Online (Sandbox Code Playgroud)
它对我有用......你可以通过验证器http://manifest-validator.com/查看你的清单.
W3C只说文件(具有清单属性的HTML文件)必须与清单相同的原始来源,他们不会告诉资源的URL必须太...你应该仔细阅读(在这里).我还在W3示例中找到了跨站点URL(在这里查看),这意味着它可以正常工作......
最后,不要试图在CDN上放置显示文件,只需将其放入您的服务器并将资源链接到CDN.清单文件必须与其主条目具有相同的来源,其中包括其HTML文件,浏览器检查清单文件以查看其HTML页面列表是否已更改,而不是检查HTML页面以查看它是否指向不同的清单文件.
缓存内容必须满足同源限制,比较的来源由调用页面(HTML页面)决定。如果您尝试缓存的所有资源都具有不同的主机名,那么根据规范,它们应该被拒绝。因此,即使您可以指定清单位于 cdn 上而不是您的主主机上,缓存也应该会失败。