2016-05-17 59 views
4

我使用谷歌速度优化我的网站,它告诉我把缓存字体真棒。如何使用htaccess将fontawesome内部缓存

我有我的htaccess下面的代码,但它似乎并不放在缓存文件:

# MOD_DEFLATE COMPRESSION 
SetOutputFilter DEFLATE 
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php 
#Pour les navigateurs incompatibles 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html 
#ne pas mettre en cache si ces fichiers le sont déjà 
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip 
#les proxies doivent donner le bon contenu 
Header append Vary User-Agent env=!dont-vary 

# BEGIN Expire headers 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresDefault "access plus 1 year" 
ExpiresByType image/jpg "access plus 1 year" 
ExpiresByType image/jpeg "access plus 1 year" 
ExpiresByType image/png "access plus 1 year" 
ExpiresByType image/gif "access plus 1 year" 
AddType image/x-icon .ico 
ExpiresByType image/ico "access plus 1 year" 
ExpiresByType image/icon "access plus 1 year" 
ExpiresByType image/x-icon "access plus 1 year" 
ExpiresByType text/css "access plus 2592000 seconds" 
ExpiresByType text/javascript "access plus 2592000 seconds" 
ExpiresByType text/html "access plus 7200 seconds" 
ExpiresByType application/xhtml+xml "access plus 7200 seconds" 
ExpiresByType application/javascript A259200 
ExpiresByType application/x-javascript "access plus 2592000 seconds" 
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" 
# Add a far future Expires header for fonts 
AddType application/vnd.ms-fontobject .eot 
AddType application/x-font-ttf .ttf 
AddType application/x-font-opentype .otf 
AddType application/x-font-woff .woff 
AddType image/svg+xml .svg 
ExpiresByType application/vnd.ms-fontobject "access plus 1 year" 
ExpiresByType application/x-font-ttf "access plus 1 year" 
ExpiresByType application/x-font-opentype "access plus 1 year" 
ExpiresByType application/x-font-woff "access plus 1 year" 
ExpiresByType image/svg+xml "access plus 1 year" 
</IfModule> 
# END Expire headers 

# BEGIN Cache-Control Headers 
<IfModule mod_headers.c> 
<FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz|ttf)$"> 
Header set Cache-Control "max-age=2592000, public" 
</FilesMatch> 
<FilesMatch "\\.(css)$"> 
Header set Cache-Control "max-age=2592000, public" 
</FilesMatch> 
<FilesMatch "\\.(js)$"> 
Header set Cache-Control "max-age=2592000, private" 
</FilesMatch> 
<filesMatch "\\.(html|htm)$"> 
Header set Cache-Control "max-age=7200, public" 
</filesMatch> 
# Disable caching for scripts and other dynamic files 
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> 
Header unset Cache-Control 
</FilesMatch> 
</IfModule> 
# END Cache-Control Headers 

# KILL THEM ETAGS 
Header unset ETag 
FileETag none 

的帮助anykind将非常感激。

回答

1

如果你真的在你的服务器上有丰富的字体,你可以将它们缓存在.htaccess文件中。

<IfModule mod_expires.c> 
    Header set cache-control: public 
    ExpiresActive on 

    ExpiresByType font/ttf  "access plus 1 month" 
    ExpiresByType font/woff  "access plus 1 month" 
    ExpiresByType image/svg+xml "access plus 1 month" 
</IfModule> 

<IfModule mod_deflate.c> 
    <FilesMatch "\.(ttf|otf|eot|svg)$" > 
    SetOutputFilter DEFLATE 
    </FilesMatch> 
</IfModule> 
0

您可以使用相同的方法缓存字体真棒或任何其他字体文件,就像缓存更常见的文件一样。这个问题要回答你的问题Setting expire headers for fonts not working

ExpiresByType application/vnd.ms-fontobject "access plus 1 year" 
ExpiresByType application/x-font-ttf "access plus 1 year" 
ExpiresByType application/x-font-opentype "access plus 1 year" 
ExpiresByType application/x-font-woff "access plus 1 year" 
ExpiresByType image/svg+xml "access plus 1 year" 

为了给进一步的改善,还可以压缩的字体。本文深入介绍了如何执行此操作https://zoompf.com/blog/2014/08/bootstrap-fonts简而言之,以下代码应该可以满足您的需求。

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