当我第一次下载图标时,它们可以在所有浏览器中使用。但是,现在它的实时版本和字体在另一台服务器上有效,它在IE或Firefox中不起作用,但在Chrome和Opera中就可以了。任何人有想法吗?我三联检查了代码,并确保所有字体都在服务器上。

@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;
}

最佳答案

字体有一些XSS限制,例如JS文件。

为了避免这些限制,您必须将服务器配置为允许跨域字体文件。

在Apache中,您必须安装Header模块并将其添加到conf中:

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


编辑:Access-Control-Allow-Origin之后的“ *”参数可能仅限于特定域。

有关更多信息,请参见http://www.w3.org/TR/cors/

10-08 04:59