2015-10-08 11 views
9

Sto sviluppando un sito web che utilizza il carattere di Google Open Sans in questo modo:IE 11: CSS3111 errore nel mio codice, e google.com/fonts non rendono alcun carattere

<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700italic,800italic,800,700' rel='stylesheet' type='text/css'> 

Normalmente, io uso Chrome quando lavoro con il mio sito Web, ma oggi ho deciso di vedere come appare in IE 11 (11.0.10240.16431) su Windows 10. Sfortunatamente, Open Sans non viene caricato e reso correttamente. Vedo un sacco di questi errori nella console Developer Tools:

CSS3111: @font-face encountered unknown error. 
PRmiXeptR36kaC0GEAetxjqR_3kx9_hJXbbyU8S6IN0.woff 

Pensare che era strano - avevo precedentemente sviluppato un sito che ha caricato di Google Fonts bene in IE 10 - ho guidato su oltre a https://www.google.com/fonts. Più CSS3111 errori, con ogni tipo di carattere personalizzato visualizzati in serif invece:

Google Fonts broken in IE 11

Google Fonts broken in IE 11

è Google Fonts semplicemente rotti per IE 11? I caratteri si caricano correttamente in Edge, Chrome, Firefox, ecc. Sono in perdita per come procedere per far funzionare questi caratteri in IE.

UPDATE 1

Impostazione della modalità documento emulato a 8 in IE 11 fa sì che i caratteri per rendere correttamente. IE 9+ mostrava comunque gli stessi problemi. Forse si tratta di un tipo di elaborazione errata delle stringhe degli user agent da parte di Google?

Correct rendering

UPDATE 2

sono andato a FontSquirrel e scaricato di Open Sans in tutti i suoi formati. Ho anche importato il CSS fornito nello ZIP. Sfortunatamente, IE e ora Firefox continuano a segnalare che il font non può essere utilizzato. Firefox dice downloadable font: not usable by platform.

UPDATE 3

ho confermato che caratteri Scaricare impostazione di IE è impostato su Enabled per tutte le zone di sicurezza.

+0

Essendo su Linux da solo, non posso testarlo. E questo non dovrebbe davvero importare. Ma c'è qualche differenza quando usi HTTP invece di HTTPS? Perché in precedenza ho avuto problemi con il caricamento di Google Fonts su SSL. –

+1

[http]: //google.com/fonts reindirizza a [https]: //google.com/fonts. Anche se c'è stata una differenza, non è un'opzione per il mio sito web. Il sito Web viene offerto tramite HTTPS e non vogliamo che gli avvisi di "contenuto non protetto" vengano visualizzati nei browser delle persone. – NathanAldenSr

+0

Una cosa che ho notato è che il file servito da Google ha solo URL WOFF in esso contenuti. Pensavo che IE supportasse solo EOT? – NathanAldenSr

risposta

2

Per quanto strano possa sembrare, la soluzione è quella di attivare il firewall di Windows. Con il firewall disattivato, non è nemmeno possibile aggiungere font TTF al sistema, e questo è lo stesso problema con @font-face. Ho trovato quella soluzione qui: https://superuser.com/questions/957907/unable-to-install-fonts-on-windows-10

+0

Sfortunatamente, non sono sicuro che questa sia stata la causa del problema per me. I tre profili di Windows Firewall sono impostati su Off, * e * il servizio stesso è Stopped, ma ora improvvisamente riesco a vedere i caratteri in IE 11. Ho controllato il numero di versione ed è lo stesso, anche. – NathanAldenSr

+1

Per me FW spento in modo affidabile era la causa del CSS3111 per i caratteri web. Ho notato che una volta che un font era stato visto dal sistema (mentre il FW era acceso) quel particolare font continuava a funzionare senza CSS3111 quando il FW era di nuovo spento. Potrebbe valere la pena provare – fpbhb

0

Ho questo problema esatto su molte macchine Windows 10/IE 11 (cioè i caratteri web non funzionano e danno errori CSS3111 nella console di debug). In tutti i casi il firewall era già attivo (e gestito da criteri di gruppo).

ho scoperto che disattivando il firewall nel Registro HKLM \ SYSTEM \ CurrentControlSet \ Services \ SharedAccess \ Parameters \ FirewallPolicy \ DomainProfile \ EnableFirewall = 0 seguito da un riavvio, quindi l'impostazione di nuovo a 1 e riavviare di nuovo risolve il problema.

L'altra cosa che risolve sempre il problema è deselezionare "Internet Explorer" nelle funzionalità di Windows, riavviare, quindi riselezionare "Internet Explorer" e riavviare di nuovo.

La mia ipotesi è che questo sia un qualche tipo di bug interno del firewall di Windows e entrambe le azioni precedenti attivano il servizio firewall per ripulire qualche tipo di danneggiamento interno.

12

Per me, questo problema è stato causato da una funzionalità di Windows 10 denominata Blocco font non attendibile. La mia rete aziendale si è attivata nelle impostazioni dei criteri di gruppo.

Utilizzando questa funzione, è possibile attivare un'impostazione globale che impedisce agli utenti di caricare caratteri non attendibili elaborati dall'interfaccia GDI (Graphics Device Interface). I font non attendibili sono caratteri installati all'esterno della directory% windir%/Fonts. https://support.microsoft.com/en-us/kb/3053676

Per disattivare font non attendibili Blocco mediante criteri di gruppo:

  1. Aprire Group Policy Management Editor
  2. Criteri del computer locale, espandere Configurazione computer, Modelli amministrativi, espandere sistema e quindi fare clic su Opzioni di mitigazione.
  3. di un font non attendibili Blocco impostazione selezionare Non bloccare i caratteri non attendibili

Per disattivare font non attendibili Blocco mediante l'editor del Registro:

  1. Aprire l'Editor del Registro di sistema (regedit.exe) e andare al seguente sottochiave del Registro di sistema: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Kernel \
  2. Se la chiave MitigationOptions non è presente, fare clic con il pulsante destro del mouse e aggiungere un nuovo valore QWORD (64 bit), nami questo come MitigationOptions.
  3. Per disattivare questa funzione. Digitare 2000000000000.

IMPORTANTE: Un riavvio del computer è necessario per le modifiche abbiano effetto

0

In Windows 10 ci sono tre livelli per font blocco:

  • impostazioni di sicurezza di IE per il download font (parte utente)
  • Opzione "blocco font non attendibile" (livello computer)
  • Opzione "Abilita provider front" (Calcola r livello)

È necessario abilitare tutti, per farlo funzionare.

1

Non preoccuparti del blocco dei caratteri. Trasforma i tuoi caratteri in base64 e includi attraverso i CSS. In questo modo si spingono i caratteri attraverso il codice del browser e i file dei font non vengono scaricati nel solito modo. This is also a DISA STIG issue per disabilitare i caratteri scaricabili.The solution can be seen at this post e anche qui copiato:

Hai solo bisogno di Base64 il carattere e includerlo in un file CSS. Assicurati di rimuovere la chiamata al file WOFF scaricabile una volta inclusa la chiamata al nuovo FontAwesomeB64.css

Utilizzare https://www.base64encode.org/ per codificare il file di font Font-Awesome di WOFF.

Modificare il file risultante e aggiungere queste righe. Quando arrivi alla riga di src: url, assicurati di eseguirlo correttamente nelle informazioni di base64 che hai ricevuto (non usare i segni di maggiore o minore che mostri qui.) Alla fine di quelle informazioni di base64 aggiungi la citazione singola , parentesi, un punto e virgola, e parentesi graffa per finire:

@font-face { 
font-weight: 400; 
font-style: normal; 
font-family: 'FontAwesome'; 
src:url(data:application/x-font-woff;base64,<insert base64 code here>);} 

ora avete un file di base64 CSS del carattere font-Impressionante che aggira tutte le impostazioni di download negazione dei caratteri nei browser.

Ho trovato che questo funziona con tutti i tipi di carattere, un po 'più pesante sul download, ma vale la garanzia di funzionalità.

+0

purtroppo non ho potuto farlo funzionare ... –

Problemi correlati