Google шрифты не работают в Китае - как это исправить
Причина, по которой мы используем Google API для обслуживания таких библиотек, как jQuery и веб-шрифты, заключается в том, что он работает быстро благодаря надежной инфраструктуре Google. Он используется почти везде, и настолько, что некоторые пользователи уже могут хранить кеш в своем браузере, что заставляет библиотеки загружаться четное Быстрее.
К сожалению, это не так в Китае. В 2014 году правительство Китая закрыло доступ ко многим службам Google, включая API Google. Скорее всего, ваш сайт может казаться частично сломанным в Китае, потому что jQuery и веб-шрифты, размещенные в Google, недоступны.
В этом посте мы рассмотрим, как обойти «цифровую» Великую китайскую стену в Китае, чтобы наш веб-сайт мог работать так же, как и за пределами Китая. Мы будем использовать альтернативную библиотеку шрифтов, которая отражает Google шрифты и библиотеки, но сначала нам нужно будет принять некоторые меры для выявления пользователей, которые родом из Китая.
Определение местоположения пользователя
Для начала нам нужно выяснить, откуда наш посетитель, и для этого мы будем использовать этот API-интерфейс WIPMania, который позволяет получить геолокацию посетителя, включая название страны:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) swal ('Вы из', data.address.country););
Мы используем JQuery $ .getJSON
вызвать API. Затем мы передаем data.address.country
который должен сказать нам, откуда посетитель. Вот демо.
Предоставление альтернативного источника веб-шрифтов
Так что теперь, когда мы можем получить информацию о местоположении нашего посетителя, мы заменим шрифты Google на библиотеки Useso, службу CDN, которая отображает шрифты и библиотеки из API Google, для обслуживания посетителей из Китая..
На этом этапе у нас все еще есть стили шрифтов, указывающие на Google API:
Мы заменим HREF
в пределах ссылка на сайт
элемент с функцией JavaScript.
function replaceGoogleCDN () $ ('link'). each (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com) / ',' //fonts.useso.com/ '); $ (this) .attr (' href ', $ replace););
Эта функция заменяет каждую ссылку на //fonts.useso.com/
вместо указания на адрес API Google, //fonts.googleapis.com/
.
Функция будет работать только когда посетитель CN
, Международный код страны Китая.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) if (data.address.country_code == 'CN') replaceGoogleCDN (););
У нас все готово. Теперь посетителям из Китая будут вручаться шрифты через //fonts.useso.com/
который не заблокирован правительством Китая.