Google Fonts non funziona in Cina - Come risolverlo
Il motivo per cui utilizziamo le API di Google per servire librerie come jQuery e Web Fonts è che serve rapidamente attraverso le affidabili infrastrutture di Google. È usato quasi ovunque, e così tanto che alcuni utenti potrebbero già avere la cache memorizzata nel loro browser, il che fa caricare le librerie anche Più veloce.
Sfortunatamente, questo non è il caso in Cina. Il governo cinese ha chiuso l'accesso a molti servizi di Google, tra cui le API di Google nel 2014. Le probabilità sono che il tuo sito web possa apparire parzialmente rotto in Cina perché i caratteri jQuery e web ospitati su Google non sono accessibili.
In questo post vedremo come aggirare la "Grande Muraglia" digitale della Cina, quindi il nostro sito web può funzionare come se fosse visualizzato al di fuori della Cina. Utilizzeremo una libreria di font alternativa che rispecchia Google Fonts e le librerie, ma prima dovremo mettere in atto alcune misure per identificare gli utenti che provengono dalla Cina.
Identificazione della posizione dell'utente
Per cominciare, dovremo trovare da dove proviene il nostro visitatore e per farlo, useremo questa API WIPMania che consente il recupero della geolocalizzazione di un visitatore, incluso il nome del suo paese:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) swal ('You are from', data.address.country););
Usiamo jQuery $ GetJSON
chiamare l'API. Quindi passiamo data.address.country
che dovrebbe dirci da dove viene il visitatore. Ecco una demo.
Fornire fonti di font Web alternative
Ora che possiamo recuperare la posizione dei nostri visitatori, sostituiremo Google Fonts con le librerie Useso, un servizio CDN che esegue il mirroring di Fonts e librerie dalle API di Google, per servire i visitatori dalla Cina.
In questa fase, abbiamo ancora i nostri stili di carattere che puntano all'API di Google:
Sostituiremo il href
all'interno del collegamento
elemento con una funzione JavaScript.
function replaceGoogleCDN () $ ('link'). each (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '; $ (this) .attr (' href ', $ replace););
Questa funzione sostituisce ogni collegamento a cui fare riferimento //fonts.useso.com/
al posto di indicare l'indirizzo dell'API di Google, //fonts.googleapis.com/
.
La funzione verrà eseguita solo quando il visitatore proviene CN
, Codice internazionale della Cina.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) if (data.address.country_code == 'CN') replaceGoogleCDN (););
Siamo tutti pronti. Ora, i visitatori dalla Cina verranno serviti i caratteri via //fonts.useso.com/
che non è bloccato dal governo cinese.