2014-02-13 2 views
1

Я использую CDL для CD-ROM для статических файлов. Я получаю сообщение об ошибке в собственном инспекторе firefox:Как получить шрифты, загружающие кросс-домен в Firefox

загружаемый шрифт: скачать не удалось (font-family: "nimbus-bold" style: normal weight: normal stretch: normal src index: 1): bad URI или межсайтовый доступ не допускается источник: http://cdn-store.example.com/fonts/nimbussanspot-bold-webfont.woff

CSS:

@font-face { 
font-family: 'nimbus-bold'; 
src: url('/fonts/nimbussanspot-bold-webfont.eot'); 
src: url('/fonts/nimbussanspot-bold-webfont.eot%3F%23iefix') format("embedded-opentype"); 
src: url('/fonts/nimbussanspot-bold-webfont.woff') format("woff"); 
src: url('/fonts/nimbussanspot-bold-webfont.ttf') format("truetype"); 
src: url('/fonts/nimbussanspot-bold-webfont.svg%23nimbus_sans_p_otbold') format("svg"); 
font-weight: normal; 
font-style: normal; 
} 

Я попытался следующие, но это не помогло:

<FilesMatch "\.(ttf|otf|woff)$"> 
<IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
</IfModule> 
</FilesMatch> 

-bash-4.1$ curl -I http://cdn-store.example.com/fonts/nimbussanspot-bold-webfont.woff 
HTTP/1.1 200 OK 
Date: Thu, 13 Feb 2014 16:58:05 GMT 
Server: Apache/2.2.15 (Oracle) 
Last-Modified: Thu, 13 Feb 2014 15:45:31 GMT 
Accept-Ranges: bytes 
Vary: Accept-Encoding,User-Agent 
Access-Control-Allow-Origin: * 
Content-Type: text/plain 
Content-Length: 24040 
Connection: keep-alive 

-bash-4.1$ curl -I http://store.example.com/fonts/nimbussanspot-bold-webfont.woff 
HTTP/1.1 200 OK 
Date: Thu, 13 Feb 2014 17:04:10 GMT 
Server: Apache/2.2.15 (Oracle) 
Last-Modified: Thu, 13 Feb 2014 15:45:31 GMT 
ETag: "146124-5de8-4f24b944b4eff" 
Accept-Ranges: bytes 
Content-Length: 24040 
Vary: Accept-Encoding,User-Agent 
Access-Control-Allow-Origin: * 
Connection: close 
Content-Type: text/plain 

EDIT: с директивой «AddType» я получаю следующие результаты, однако шрифты не загружаются

$ curl -I http://store.example.com/fonts/nimbussanspot-bold-webfont.woff 
HTTP/1.1 200 OK 
Date: Fri, 14 Feb 2014 15:09:02 GMT 
Server: Apache/2.2.15 (Oracle) 
Last-Modified: Thu, 13 Feb 2014 15:45:31 GMT 
ETag: "146124-5de8-4f24b944b4eff" 
Accept-Ranges: bytes 
Content-Length: 24040 
Vary: Accept-Encoding,User-Agent 
Access-Control-Allow-Origin: * 
Connection: close 
Content-Type: application/x-font-woff 

$ curl -I http://cdn-store.example.com/fonts/nimbussanspot-bold-webfont.woff 
HTTP/1.1 200 OK 
Server: Apache/2.2.15 (Oracle) 
Accept-Ranges: bytes 
Vary: Accept-Encoding,User-Agent 
Access-Control-Allow-Origin: * 
Content-Type: application/x-font-woff 
Age: 55 
Date: Fri, 14 Feb 2014 15:08:59 GMT 
Last-Modified: Thu, 13 Feb 2014 15:45:31 GMT 
Content-Length: 24040 
Connection: keep-alive 

ответ

2

Ваши WebFont файлы подаются в text/plain Content-Type вместо правильного одного такого как application/x-font-woff.

попробовать что-то вроде этого в вашем конфигурационном файле апача увидеть, если это помогает:

<Location /webfont> 
    Header set Access-Control-Allow-Origin "*" 
    AddType application/vnd.ms-fontobject .eot 
    AddType application/x-font-ttf .ttf 
    AddType application/x-font-woff .woff 
</Location> 
+0

завиток выходы Content-Type: применение/х-шрифт-TTF и загружает шрифт без проблем. Тем не менее, я до сих пор вижу сообщение об ошибке в консоли «межсайтовый доступ не разрешен». Должен ли я игнорировать это? –

+0

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

+0

Я ошибся, шрифты не загружаются. Можете ли вы предложить другое решение? –

1

На сервере вам необходимо будет добавить: Access-Control-Allow-Origin шрифтов.
В .htaccess дополнения:

<FilesMatch "\.(ttf|otf|eot|woff|woff2)$"> 
    <IfModule mod_headers.c> 
     Header set Access-Control-Allow-Origin "*" 
    </IfModule> 
</FilesMatch>