我正在尝试对其进行设置,以便浏览器长时间缓存网页字体并尝试对其进行gzip以便更快下载。
根据我的理解,您可以通过Apache中的httpd.conf
文件或.htaccess
来完成此操作。
我不知道如何判断是否启用了gzip,我读了一些关于在httpd.conf
文件中搜索DEFLATE
的内容;我做到了,但什么也没找到 - 所以不确定它是否已启用!?
无论如何,我已将此代码放入.htaccess
文件中,部分原因是因为我不知道将它放在httpd.conf文件中的哪个位置,部分原因是因为更容易在.htaccess文件中进行更改不断打扰我的主人。
这是代码..
# Add correct content-type for fonts
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType font/x-woff .woff
AddType image/svg+xml .svg
# Compress compressible fonts
AddOutputFilterByType DEFLATE font/ttf font/otf image/svg+xml
# Add a far future Expires header for fonts
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/otf "access plus 1 year"
ExpiresByType font/x-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
现在,我想知道这是否正确,因为我也看到了类似但不同的代码到期......
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
将它放在.htaccess
文件中的位置或者它可以放在哪里都重要吗?
答案 0 :(得分:3)
ExpiresByType可以进入你的httpd.conf,virtualhost config或htaccess,如每个指令条目顶部的apache文档概述框所示:
http://httpd.apache.org/docs/2.2/mod/mod_expires.html#expiresbytype
上下文列表是告诉您可以将各种Apache指令类型放入哪些配置文件的方法。
假设您使用的是PHP,那么您的phpinfo详细信息应该告诉您是否启用了gzip。
修改强>
在回答有关字体MIME类型的正确方法的问题时,就其与Apache Server的文件关联而言,我的mime.types文件(位于httpd.conf所在的apache conf文件夹中)告诉我< / p>
application/x-font-(extension)
将是与ExpiresByType一起使用的关联。我建议首先使字体工作,然后检查字体网址的标题,看看它是否给出了正确的截止日期。
对于接收网络字体的浏览器,this article似乎表明不考虑MIME类型,因此无关紧要。但是this one似乎与此相矛盾。据我了解,没有官方的字体/ MIME类型,因此任何浏览器实现都不在MIME规范之内。
相关问题:
Correct Apache AddType directives for font MIME types
我没有在.htaccess中看到任何指定放置要求的内容,因此您应该安全地将这些规则放在您认为合适的地方,尽管如果您执行AddTypes,则需要在引用声明的Type的任何其他指令之上执行此操作。最好将这些置于重写规则之上。