【发布时间】:2015-09-28 12:53:07
【问题描述】:
我的一个网页出现了问题,该网页已更改为使用 HTML5 appcache 功能。当在页面上启用 appcache 时,Safari 会阻止我的跨站点 css 文件。该页面http://www.ericperrets.info/ 从我的服务器加载了一些图像/css 文件,并从 google url/servers 加载了一些 css 文件。下面是epi.appcache文件内容
CACHE MANIFEST
#v2
CACHE:
default.css
/images/bg.gif
/images/bg2.gif
/images/external.png
/images/logo.gif
/images/mail_48.png
/images/meme.jpg
/images/pdficon.gif
/images/telephone_32.png
/favicon.ico
/js/dojo/dojo/dojo.js
NETWORK:
Resume%20-%20Eric%20Perret.pdf
index.html
当页面在 Firefox 中加载时可以找到,但是当我尝试在 Safari 中加载它时,它会阻止对 http://fonts.googleapis.com/css?family=Reenie+Beanie&v1 和 http://fonts.googleapis.com/css?family=Candal&v1 的调用被消息阻止
网址无法显示
不知道为什么会这样。
【问题讨论】:
-
提到的两个文件都具有私有缓存控制,这意味着它应该只缓存在用户浏览器中(而不是公共代理等)。这和你的问题有关系吗?
-
@Jonas,不知道为什么 Google 使用
Cache-Controle: private作为 CSS 文件,使用 'Cache-Controle: public` 作为字体,但这不是我网站的问题。我没有明确说明所有其他 http 内容都应该来自网络的行更长。 -
他们使用 cache-controle private 因为希望为不同的浏览器提供不同的 css 文件。代理应该使用缓存文件发送给其他用户,可能还有其他浏览器。