Загружаемый шрифт в firefox: плохой URI или межсайтовый доступ не разрешен
Я веб-мастер в http://www.beperk.com (я даю вам URL, чтобы вы могли проверить проблему), и у меня много проблем с использованием @font-face в CSS.
Я хочу использовать foundicons из Zurb dot com, поэтому я разместил их на Amazon S3.
Я настроил ведро, чтобы разрешить доступ crossdomain, как указано здесь: http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors
и все начал работать в webkit, trident и gecko... в основном: при просмотре веб-страниц с firefox (версии 17, 18 и 19 протестированы) все значки не удается случайным образом с этой ошибкой:
Timestamp: 22/02/13 13:18:01
Error: downloadable font: download failed (font-family: "GeneralFoundicons" style:normal weight:normal stretch:normal src index:1): bad URI or cross-site access not allowed
и я говорю случайным образом, так как после полной перезагрузки страницы (с control/command + R) каждый значок, как правило, снова терпит неудачу после некоторых посещений.
может ли кто-нибудь найти проблему?
4 ответов
на вашем сервере вам нужно будет добавить:
Access-Control-Allow-Origin
в заголовок файлов шрифтов, например, если вы используете Apache, вы можете добавить это в .реврайт:
<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
Если кто-то использует локальный ресурс и сталкивается с этой проблемой в firefox. Вы можете перейти к about:config
, и security.fileuri.strict_origin_policy
предпочтение false
.
см.:https://developer.mozilla.org/en-US/docs/Same-origin_policy_for_file:_URIs
попробуйте использовать реализованные шрифты с кодировкой base64, такие как:
@font-face {
font-family:"font-name";
src:url(data:font/opentype;base64,[paste-64-code-here]);
font-style:normal;
font-weight:400;
}
см.:http://sosweetcreative.com/2613/font-face-and-base64-data-uri
он работал отлично.
Я решил проблему в Firefox (проблема доступа к локальным ресурсам) с помощью uri:src: uri("../fuentes/EurostileLTStd.otf");
вместо src: uri("../fuentes/EurostileLTStd.otf");
.