【问题标题】:Should I locally store CSS generated by the Google Web Fonts API?我应该在本地存储由 Google Web Fonts API 生成的 CSS 吗?
【发布时间】:2012-03-10 04:31:15
【问题描述】:

我正在使用一些 Google 网络字体。我听说 Google 会处理不同浏览器之间的所有问题,并根据请求标头中的浏览器提供不同的媒体。

我的问题是,它在什么时候这样做?

原因是对于 API,您可以简单地包含一个包含 @font-face 请求的 CSS 文件。我可以简单地将该 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');
}

【问题讨论】:

标签: css font-face webfonts google-webfonts


【解决方案1】:

不是您确切问题的答案,但即使目前有可能,我也永远不会在本地缓存 Google 提供“实时”服务的任何 CSS,因为:

  • 即使现在可以工作,但如果他们更改某些内容,它可能会在以后中断

  • 您没有添加任何可靠性,因为字体本身仍然必须从 Google 获取

  • 你并没有真正提高性能:如果一切配置正确,HTTP 请求将只发生一次,然后被缓存。此外,用户可能会从另一个使用 Google 字体的网站缓存字体 CSS。

【讨论】:

  • 是的,这确实有道理。谢谢。
  • 不考虑你的第三点,如果字体也由本地服务器提供,那么让 CSS 也驻留在本地是有意义的。此外,由于您提到了“实时”流行语,我宁愿将“实时”内容存储在本地,以允许在我的网站上获得一致的用户体验,而不是当 Google 决定更改某些内容时出现损坏的内容,这是众所周知的做法。 ..很多!
  • 阅读您的所有命令,我建议将请求代理到 Google 字体(以提高速度)并缓存结果(以便能够及时获得更改)
  • @Sterex 向我展示了一个实例,其中 Google 破坏了它承诺无限期托管的可公开访问的资源,例如网络字体。我不认为你会找到一个。
【解决方案2】:

Google Webfonts 提供的 CSS 会根据 HTTP 请求标头中的用户代理而变化,因此最好使用 @import。原因在于不同浏览器对网页字体的实现方式不同。

【讨论】:

  • 技术上是我问题的答案。谢谢。
【解决方案3】:

如果您想存储本地 CSS,那么您也必须在本地存储字体,否则它将再次产生额外的 HTTP 请求。

Google 允许下载字体以供本地使用,但您也可以检查网络。 https://developers.google.com/webfonts/faq

【讨论】:

    猜你喜欢
    • 2015-04-24
    • 2019-03-08
    • 2020-09-12
    • 2021-04-17
    • 2017-04-19
    • 2019-01-25
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多