Загружаемый шрифт в 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");.