如何gzip @ font-face示例?

时间:2012-02-29 20:45:35

标签: css gzip font-face

有人可以提供一个如何gzip webfont工具包的示例吗?生成器为我提供了这段代码......需要改变什么?

@font-face {
    font-family: 'DesigersBold';
    src: url('desib__-webfont.eot');
    src: url('desib__-webfont.eot?#iefix') format('embedded-opentype'),
         url('desib__-webfont.woff') format('woff'),
         url('desib__-webfont.ttf') format('truetype'),
         url('desib__-webfont.svg#DesigersBold') format('svg');
    font-weight: normal;
    font-style: normal;
}

2 个答案:

答案 0 :(得分:9)

您使用的是Apache并且可以访问httpd.conf吗?如果是这样,gzip压缩是否已启用?

您可以查找以下这一行:

AddOutputFilterByType DEFLATE

或者

SetOutputFilter DEFLATE

如果是前者,您应该能够添加以下MIME类型,因此指令和参数如下所示。此处声明的MIME类型适用于 .EOT .TTF .SVG 。我从Apache conf文件夹中的 mime.types 文件中删除它们。我相信.WOFF已经被压缩,所以你不需要对它进行压缩。

AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf image/svg+xml

后一个指令SetOutputFilter gzips它所声明的容器中的所有文件。如果这个位置包含你的字体文件,它们应该在交付给客户端时被gzip压缩。

答案 1 :(得分:0)

发送一些参数(虚假),服务器会将这些响应视为 text / plain ,如果 DEFLATE 设置在text / plain。

@font-face {
    font-family: 'DesigersBold';
    src: url('desib__-webfont.eot?v=1');
    src: url('desib__-webfont.eot?v=1#iefix') format('embedded-opentype'),
         url('desib__-webfont.woff?v=1') format('woff'),
         url('desib__-webfont.ttf?v=1') format('truetype'),
         url('desib__-webfont.svg?v=1#DesigersBold') format('svg');
    font-weight: normal;
    font-style: normal;
}

它运作正常!