来自http://appcachefacts.info/:
通过SSL,清单中的所有资源必须具有相同的来源政策例外的是谷歌浏览器,它在这方面没有遵循规范。通过SSL,Chrome将加载来自不同来源的资源,只要它们仍然通过SSL提供服务。
我真的很想从用户附近的CDN加载静态资产,如图像、css和javascript,避免仅仅因为我使用HTTPS 就从我的Web服务器提供它们
我们有没有办法绕过这些安全限制?
我的目标:
主html加载自:https://mydomain.com.
资产加载自:https://cdn.mydomain.com(子域但不同源..)
我目前使用的Appcache文件,但似乎在safari和iOS iphone:上不起作用
CACHE MANIFEST
CACHE:
https://cdn.mydomain.com/main.css
https://cdn.mydomain.com/main.zepto.js
NETWORK:
/
*
很遗憾没有,很抱歉实际上根据http://en.wikipedia.org/wiki/Same_origin_policy目前唯一允许跨域缓存的浏览器是Chrome,这只是因为它们故意不遵守同源策略。如果你想让你的离线网站专门为chrome用户服务,你可以使用双服务器,否则你必须坚持使用一个,直到不同的浏览器拿出新的策略。
如果你想变得棘手,你可以尝试对资产服务器上的html文件运行jQuery,在那里加载清单,但我怀疑这在离线使用时是否有效。