HTML5 appcache с Safari, заставляющий межсайтовый css не загружаться - PullRequest
10 голосов
/ 17 июня 2011

Я столкнулся с проблемой на одной из моих веб-страниц, которая была изменена для использования функции appcache HTML5.Safari блокирует мои межсайтовые css-файлы, когда на странице включен appcache.Страница http://www.ericperrets.info/, загружает несколько файлов изображений / css с моего сервера и несколько файлов css с URL / серверов Google.Ниже приведено содержимое файла 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 блокируются сообщением

Невозможно отобразить URL

Не уверен, почему это происходит.

1 Ответ

15 голосов
/ 24 июня 2011

Приложения, когда они определены, используются браузером, чтобы указать, какие файлы существуют на вашем сайте и имеют отношение к конкретной странице, которую посещает браузер. Думайте о appcache как о белом списке, в нем перечислены все файлы, к которым можно получить доступ, и способы их доступа.

Поэтому, когда Safari, который, по моему опыту, следует стандарту AppCache чуть более строго, чем Firefox, видит запрос на веб-адрес, которого нет в AppCache, он не разрешает доступ.

Чтобы обойти это, вы можете добавить ресурсы либо в раздел кеша, либо в раздел сети. На мой взгляд, лучше всего использовать подстановочный знак "*" в разделе сети, чтобы гарантировать, что запросы не будут заблокированы.

NETWORK:
*
http://*
https://*
...