2013-01-23 58 views
0

當我第一次下載他們在所有瀏覽器中工作的圖標。不過現在它的直播和字體生活在不同的服務器上,它在IE或Firefox中不起作用,但在Chrome和Opera中很好。任何任何想法?我有tripple檢查代碼,並確保所有的字體都在服務器上。圖標字體 - icomoon - @ font-face不顯示在不同的服務器上時

@font-face { 
font-family: 'icomoon'; 
src:url('http://static.mydomain.com/design_media/fonts/icomoon.eot'); 
src:url('http://static.mydomain.com/design_media/fonts/icomoon.eot?#iefix') format('embedded-opentype'), 
    url('http://static.mydomain.com/design_media/fonts/icomoon.svg#icomoon') format('svg'), 
    url('http://static.mydomain.com/design_media/fonts/icomoon.woff') format('woff'), 
    url('http://static.mydomain.com/design_media/fonts/icomoon.ttf') format('truetype');  
font-weight: normal; 
font-style: normal; 
} 

回答

1

對於像JS文件這樣的字體,有一些XSS限制。

爲了避免這些限制,您必須配置服務器以允許跨域字體文件。

在Apache中,您必須安裝頭模塊和你的conf補充一點:

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

編輯:「*」的參數後,訪問控制允許來源很可能被限制在特定的域。

查看http://www.w3.org/TR/cors/瞭解更多信息。

+0

這不會允許任何人訪問其他站點的所有'.ttf,.ttc,.otf,.eot,.woff'文件嗎? – hitautodestruct

+0

嗯,我不是Apache管理方面的專家,但我想你可以限制只能從你的域進行跨域訪問。 – Loic

+0

應該被提及,所以有人不會意外地將其用於生產(不是它是這樣一個安全漏洞),但仍然.. – hitautodestruct