通过SSL,清单中的所有资源必须尊重同源 政策。 Google Chrome是一个例外,它不遵循这方面的规范。通过SSL,Chrome将从不同的来源加载资源,只要它们仍然通过SSL提供。
我真的想从靠近用户的CDN加载静态资产,如图像,css和javascripts,并且因为我使用HTTPS而无法从我的网络服务器上提供它们
我们是否有办法解决这些安全限制?
我的目标:
主要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:
/
*
答案 0 :(得分:5)
很遗憾没有,很抱歉,根据http://en.wikipedia.org/wiki/Same_origin_policy目前唯一允许跨域缓存的浏览器是Chrome,这只是因为他们故意不遵守相同的原始政策。如果您想专门为Chrome用户创建脱机站点,您可以使用双服务器,否则您必须坚持使用一台服务器,直到不同的浏览器提出新策略。
如果你想变得棘手,你可以尝试将jQuery运行到资产服务器上的html文件,然后在那里加载清单,但我怀疑在离线使用时它会起作用。