Google-Schriften funktionieren in China nicht - So beheben Sie das Problem
Der Grund, warum wir die API von Google für Bibliotheken wie jQuery und Web Fonts verwenden, ist die schnelle Bereitstellung durch die zuverlässigen Infrastrukturen von Google. Es wird fast überall verwendet und so sehr, dass einige Benutzer den Cache bereits in ihrem Browser gespeichert haben, wodurch die Bibliotheken geladen werden sogar schneller.
In China ist das leider nicht der Fall. Die chinesische Regierung hat 2014 den Zugang zu vielen Diensten von Google, einschließlich Google API, gesperrt. Die Chancen stehen gut, dass Ihre Website dies kann erscheinen teilweise gebrochen in China, weil auf die in Google gehosteten jQuery- und Web-Schriftarten nicht zugegriffen werden kann.
In diesem Beitrag werden wir sehen, wie wir Chinas "digitale" Große Mauer umgehen können, damit unsere Website so funktioniert, wie sie außerhalb Chinas gesehen wird. Wir werden eine alternative Zeichensatzbibliothek verwenden, die Google Fonts und -Bibliotheken widerspiegelt. Zunächst müssen wir jedoch einige Maßnahmen ergreifen, um Benutzer zu identifizieren, die aus China stammen.
Benutzerstandort identifizieren
Zunächst müssen wir herausfinden, woher unser Besucher kommt. Um dies zu tun, verwenden wir diese WIPMania-API, mit der die Geolocation eines Besuchers abgerufen werden kann, einschließlich des Ländernamens:
$ .getJSON ("http://api.wipmania.com/jsonp?callback=?", function (data) swal ("Sie sind aus", data.address.country););
Wir verwenden jQuery $ .getJSON
um die API aufzurufen. Wir gehen dann vorbei Daten.Adresse.Land
das sollte uns sagen, woher der Besucher kommt. Hier ist eine Demo.
Bereitstellen einer alternativen Web-Font-Quelle
Nun, da wir unseren Besucherstandort abrufen können, werden wir Google Fonts durch Useso-Bibliotheken ersetzen, einen CDN-Dienst, der Fonts und Bibliotheken von Google API spiegelt, um Besuchern aus China zu dienen.
Zu diesem Zeitpunkt weisen unsere Schriftstile immer noch auf Google API hin:
Wir werden das ersetzen href
innerhalb des Verknüpfung
Element mit einer JavaScript-Funktion.
function replaceGoogleCDN () $ ('link'). each (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com.) / ',' //fonts.useso.com/ '); $ (this) .attr (' href ', $ replace););
Diese Funktion ersetzt jeden Link, auf den verwiesen wird //fonts.useso.com/
anstelle des Verweises auf die Google-API-Adresse, //fonts.googleapis.com/
.
Die Funktion wird nur ausgeführt, wenn der Besucher aus ist CN
, Chinas internationaler Ländercode.
$ .getJSON ("http://api.wipmania.com/jsonp?callback=?", Funktion (Daten) if (data.address.country_code == 'CN') replaceGoogleCDN (););
Wir sind alle da. Nun werden Besucher aus China über Schriftarten bedient //fonts.useso.com/
was nicht von der chinesischen Regierung blockiert wird.