2012-02-01 104 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 
     } 
}