2012-02-01 106 views
5

我的网站的字体在使用http的所有浏览器中工作正常。但是,当我更改为https字体在IE8和以下版本中不起作用时,在ie9中正常工作。Internet Explorer字体脸部SSL

使用IE,当我使用http输入.eot文件的路径时,我可以选择下载文件,但是当我使用https时,它说它找不到。

我正在使用自分配的证书。 iis 7.5 .net 4.0,umbraco 4.7.0 cms,客户端依赖框架(我已经尝试删除客户端依赖框架,仍然没有工作)。

<style type="text/css">  
@font-face { 
       font-family: 'GGX88UltraLight'; 
       src: url('/css/type/ggx88_ul-webfont.eot'); 
       src: url('/css/type/ggx88_ul-webfont.eot?iefix') format('embedded-opentype'), 
        url('/css/type/ggx88_ul-webfont.woff') format('woff'), 
        url('/css/type/ggx88_ul-webfont.ttf') format('truetype'), 
        url('/css/type/ggx88_ul-webfont.svg#webfontU6kiGgEl') format('svg'); 
       font-weight: normal; 
       font-style: normal; 
    } 
</style> 

可能有用

<staticContent> 
    <!-- Set expire headers to 30 days for static content--> 
    <clientCache cacheControlMode="DisableCache" cacheControlMaxAge="30.00:00:00" /> 
    <!-- use utf-8 encoding for anything served text/plain or text/html --> 
    <remove fileExtension=".css" /> 
    <mimeMap fileExtension=".css" mimeType="text/css; charset=UTF-8" /> 
    <remove fileExtension=".js" /> 
    <mimeMap fileExtension=".js" mimeType="text/javascript; charset=UTF-8" /> 
    <remove fileExtension=".json" /> 
    <mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" /> 
    <remove fileExtension=".rss" /> 
    <mimeMap fileExtension=".rss" mimeType="application/rss+xml; charset=UTF-8" /> 
    <remove fileExtension=".html" /> 
    <mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8" /> 
    <remove fileExtension=".xml" /> 
    <mimeMap fileExtension=".xml" mimeType="application/xml; charset=UTF-8" /> 
    <!-- HTML5 Video mime types--> 
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
    <mimeMap fileExtension=".m4v" mimeType="video/m4v" /> 
    <mimeMap fileExtension=".ogg" mimeType="video/ogg" /> 
    <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> 
    <mimeMap fileExtension=".webm" mimeType="video/webm" /> 
    <!-- Remove default IIS mime type for .eot which is application/octet-stream --> 
    <remove fileExtension=".eot" /> 
    <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> 
    <mimeMap fileExtension=".otf" mimeType="font/otf" /> 
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" /> 
    <mimeMap fileExtension=".crx" mimeType="application/x-chrome-extension" /> 
    <mimeMap fileExtension=".xpi" mimeType="application/x-xpinstall" /> 
    <mimeMap fileExtension=".safariextz" mimeType="application/octet-stream" /> 
</staticContent> 
<httpProtocol allowKeepAlive="true"> 
    <customHeaders> 
    <add name="X-UA-Compatible" value="IE=Edge,chrome=1" /> 
    <add name="Access-Control-Allow-Origin" value="*" /> 
    </customHeaders> 
</httpProtocol> 
+0

这似乎是某种服务器配置或intranet设置问题。当我将站点移动到登台服务器时,字体运行良好。 – pinniger 2012-02-08 21:17:30

回答

1

如果更改url来源的顺序会怎么样。就像把“svg”网址放在第二位一样,就在“embedded-opentype”之后。

@font-face { 
       font-family: 'GGX88UltraLight'; 
       src: url('/css/type/ggx88_ul-webfont.eot'); 
       src: url('/css/type/ggx88_ul-webfont.eot?iefix') format('embedded-opentype'), 
        url('/css/type/ggx88_ul-webfont.svg#webfontU6kiGgEl') format('svg'), 
        url('/css/type/ggx88_ul-webfont.woff') format('woff'), 
        url('/css/type/ggx88_ul-webfont.ttf') format('truetype'); 
       font-weight: normal; 
       font-style: normal; 
    } 
3

我用弹簧启动面临着同样的问题: 我找到了解决办法是

- 隐藏附注和Cache-Control返回头到浏览器:

春季启动正在使用特定的Cache-Control和Pragma HTTP头进行响应。

Cache-Control :"no-cache, no-store, max-age=0, must-revalidate" 
Pragma :"no-cache" 

Internet Explorer(IE11在我的情况下)无法加载带有这些标头的字体。 我相信它是一个bug,我们必须应付它。

使用nginx的来代理我们的弹簧启动应用程序, 我可以克服这个问题, 隐藏了头的浏览器使用以下nginx的配置命令:

server { 
     listen 443; 
     server_name server.dns.name; 
     ssl on; 
     ssl_certificate /etc/nginx/ssl/server.dns.name.pem; 
     ssl_certificate_key /etc/nginx/ssl/server.dns.name.key; 

     location/{ 
      include /etc/nginx/mime.types; 
      rewrite ^/(.*) /$1 break; 
      proxy_pass http://127.0.0.1:8080; 
      proxy_read_timeout 90; 

      #IE specific tweak for fonts not to be ignored: 
      proxy_hide_header Cache-Control; 
      proxy_hide_header Pragma; 
      #END IE specific tweak for fonts not to be ignored 
     } 
}