Загружаемый шрифт на firefox: неправильный URI или межсайтовый доступ не разрешен
Я веб-мастер на http://www.beperk.com (я даю вам URL, чтобы вы могли проверить проблему), и у меня много проблем с использованием @font-face в CSS.
Я хочу использовать основы от zurb dot com, поэтому я разместил их на Amazon S3.
Я настроил корзину, чтобы разрешить междоменный доступ, как указано здесь: 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) каждый значок, как правило, снова выходит из строя после некоторых посещений.
Кто-нибудь может найти проблему?
Ответы
Ответ 1
На вашем сервере вам нужно будет добавить:
Access-Control-Allow-Origin
В заголовок файлов шрифтов, например, если вы используете Apache, вы можете добавить это в .htaccess:
<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
Ответ 2
Если кто-то использует локальный ресурс и сталкивается с этой проблемой в firefox. Вы можете перейти к about:config
и изменить security.fileuri.strict_origin_policy
на false
.
см. https://developer.mozilla.org/en-US/docs/Same-origin_policy_for_file:_URIs
Ответ 3
попробуйте использовать реализованные шрифты с кодировкой 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
он работал отлично.
Ответ 4
Я решил проблему в Firefox (проблема доступа к локальным ресурсам), используя url: src: url("../fuentes/EurostileLTStd.otf");
вместо src: uri("../fuentes/EurostileLTStd.otf");
,