2012-02-01 25 views
5

I caratteri per il mio sito funzionano perfettamente in tutti i browser che utilizzano http. Tuttavia quando cambio in https i caratteri non funzionano in IE8 e sotto, funziona correttamente in ie9.internet explorer font face ssl

Utilizzo di IE, quando digito il percorso del file .eot tramite http, ho la possibilità di scaricare il file, ma quando uso https, dice che non può essere trovato.

Sto utilizzando un certificato assegnato automaticamente. iis 7.5 .net 4.0, umbraco 4.7.0 cms, framework di dipendenza del client (che ho provato con il framework delle dipendenze del client rimosso, non funzionava ancora).

<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> 

valori di configurazione web che potrebbero essere utili

<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

Questo sembra essere un qualche tipo di server di problema di configurazione di config o intranet. Quando ho spostato il sito sul server di gestione temporanea, i caratteri funzionavano correttamente. – pinniger

risposta

1

Cosa succede se si modifica l'ordine delle origini URL. Come mettere l'url "svg" al secondo posto .. subito dopo "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

Ho affrontato lo stesso comportamento con la primavera-boot: la soluzione che ho trovato è stato quello di

- Nascondi Pragma e Cache-Control restituiti intestazioni al browser:

Primavera-boot sta rispondendo con intestazioni specifiche di Cache-Control e Pragma HTTP.

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

Internet Explorer (IE11 nel mio caso) non è in grado di caricare tipi di carattere con tali intestazioni. Credo che sia un bug e dobbiamo affrontarlo.

Utilizzando nginx alla procura la nostra applicazione primavera-boot, ho potuto superare il problema, nascondere che le intestazioni al browser utilizzando i seguenti comandi di configurazione 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 
     } 
}