Должен ли я локально хранить CSS, сгенерированный API веб-шрифтов Google?

Я использую некоторые веб-шрифты Google. Я слышал, что Google решает все проблемы между разными браузерами и обслуживает разные медиафайлы в зависимости от браузера в заголовке запроса.

Мой вопрос в том, в какой момент он это делает?

Причина в том, что для API вы можете просто включить файл CSS, содержащий запрос @font-face. Могу ли я просто включить этот CSS в свой собственный файл CSS, тем самым сохранив HTTP-запрос, или этот CSS меняется в зависимости от браузера, который его запрашивает?

Я очень надеюсь, что это имеет смысл.

Например, Google предлагает вам включить в свой файл CSS следующее:

@import url(http://fonts.googleapis.com/css?family=Exo);

содержание которого:

@font-face {
  font-family: 'Exo';
  font-style: normal;
  font-weight: 400;
  src: local('Exo Regular'), local('Exo-Regular'), url('http://themes.googleusercontent.com/static/fonts/exo/v1/ZcGd2dvMSgl3mHN3lKAjNw.woff') format('woff');
}

person Cheetah    schedule 19.02.2012    source источник
comment
См. также stackoverflow.com/questions/7203871/   -  person Paul Wagland    schedule 03.06.2013


Ответы (3)


CSS, обслуживаемый веб-шрифтами Google, изменяется в зависимости от пользовательского агента в заголовке HTTP-запроса, поэтому вам лучше использовать @import. Причина в разной реализации веб-шрифтов в разных браузерах.

person Daan    schedule 19.02.2012
comment
Технически ответ на мой вопрос. Спасибо. - person Cheetah; 20.02.2012

Не ответ на ваш точный вопрос, но даже если бы это было возможно в данный момент, я бы никогда локально не кэшировал какой-либо CSS, который Google обслуживает «вживую», потому что:

  • даже если сейчас работает, то потом может сломаться, если что-то поменяют

  • достоверности вы не добавляете, потому что сам шрифт все равно приходится ковырять в гугле

  • вы на самом деле не сильно улучшите производительность: если все настроено правильно, HTTP-запрос будет выполнен только один раз и после этого будет кэшироваться. Кроме того, пользователь может кэшировать шрифт CSS с другого сайта, использующего Google Fonts.

person Pekka    schedule 19.02.2012
comment
Да, это имеет смысл. Спасибо. - person Cheetah; 19.02.2012
comment
Несмотря на ваше третье замечание, если шрифт также обслуживается локальным сервером, имеет смысл размещать CSS также локально. Кроме того, поскольку вы упомянули модное слово «живой», я бы предпочел хранить живой контент локально, чтобы обеспечить согласованное взаимодействие с пользователем на моем веб-сайте, а не сломанный, когда Google решает что-то изменить, что они, как известно, делают ... много ! - person Sterex; 22.09.2013
comment
Читая все ваши команды, я бы предложил прокси-запрос к шрифту Google (для скорости) и кеширование результатов (для возможности получать изменения по мере их поступления) - person AsTeR; 01.09.2014
comment
@Sterex покажите мне случай, когда Google взломал общедоступный ресурс, который он обещал разместить на неопределенный срок, например, веб-шрифт. Я не думаю, что вы найдете один. - person Pekka; 02.09.2014

Если вы хотите сохранить локальный CSS, вы ДОЛЖНЫ также хранить шрифт локально, потому что в противном случае у него снова будет дополнительный HTTP-запрос.

И Google позволяет загружать шрифт для локального использования, но вы также можете проверить его для Интернета. https://developers.google.com/webfonts/faq

person Shawn Taylor    schedule 19.02.2012