2016-05-17 58 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