请记住,我的回答已经过时了。
下面还有其他技术上更复杂的答案,例如:
所以不要让这是当前公认的答案这一事实给您留下这样的印象,即这仍然是最好的答案。
您现在还可以通过 github 上的 google/font 存储库下载 google 的整个字体集。他们还提供~420MB zip snapshot of their fonts。
您首先将您的字体选择下载为一个压缩包,为您提供一堆真实类型的字体。将它们复制到公共的地方,你可以从你的 CSS 链接到的地方。
在 google webfont 下载页面上,您会找到一个包含链接,如下所示:
http://fonts.googleapis.com/css?family=Cantarell:400,700,400italic,700italic|Candal
它通过一堆 @font-face 定义链接到定义字体的 CSS。
在浏览器中打开它,将它们复制并粘贴到您自己的 CSS 中,并修改 url 以包含正确的字体文件和格式类型。
所以这个:
@font-face {
font-family: 'Cantarell';
font-style: normal;
font-weight: 700;
src: local('Cantarell Bold'), local('Cantarell-Bold'), url(http://themes.googleusercontent.com/static/fonts/cantarell/v3/Yir4ZDsCn4g1kWopdg-ehHhCUOGz7vYGh680lGh-uXM.woff) format('woff');
}
变成这样:
/* Your local CSS File */
@font-face {
font-family: 'Cantarell';
font-style: normal;
font-weight: 700;
src: local('Cantarell Bold'), local('Cantarell-Bold'), url(../font/Cantarell-Bold.ttf) format('truetype');
}
如您所见,以这种方式在您自己的系统上托管字体的一个缺点是,您将自己限制为真正的类型格式,而 google webfont 服务由访问设备决定将传输哪些格式。
此外,我必须将 .htaccess 文件添加到包含 mime 类型的字体的目录中,以避免在 Chrome 开发工具中弹出错误。
对于这个解决方案,只需要真正的类型,但当您还想包含不同的字体时,定义更多也没有什么坏处,比如font-awesome。
#.htaccess
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff