通过.htaccess设置过期头和gzipping数据
我试图设置它,以便浏览器可以长时间缓存网页字体,并尝试将它们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
文件中的位置,还是可以放在任何地方?
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服务器的文件关联而言,我的mime.types文件(可在你的httpd.conf所在的apache conf文件夹中找到)告诉我:
application/x-font-(extension)
将是与ExpiresByType一起使用的关联。 我建议首先让字体工作,然后检查字体url的标题以查看它是否给出正确的截止日期。
至于接收Web字体的浏览器,这篇文章似乎表明MIME类型不被考虑,因此并不重要。 但是,这似乎与此相矛盾。 据我所知,没有官方的字体/ MIME类型,所以任何浏览器实现都不在MIME规范之外。
相关问题:
字体的正确MIME类型
更正字体MIME类型的Apache AddType指令
我没有在.htaccess中看到任何指定放置要求的地方,所以你应该安全的将这些规则放在任何你认为合适的地方,但是如果你做了AddType,你需要在任何引用声明Type的进一步指令上面这样做。 最好将这些放在重写规则上方的顶端。
链接地址: http://www.djcxy.com/p/46991.html