我在 .htaccess 文件中设置了这段代码,但 woff 字体没有缓存。
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
# Web fonts
AddType application/x-font-ttf ttc ttf
AddType application/x-font-woff .woff
AddType application/font-woff2 .woff2
AddType image/svg+xml .svg
AddType application/vnd.ms-fontobject eot
# Embedded OpenType (EOT)
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType font/eot "access plus 1 month"
# OpenType
ExpiresByType font/opentype "access plus 1 month"
# TrueType
ExpiresByType application/x-font-ttf "access plus 1 month"
# Web Open Font Format (WOFF) 1.0
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType font/woff "access plus 1 month"
# Web Open Font Format (WOFF) 2.0
ExpiresByType application/font-woff2 "access plus 1 month"
</IfModule>
Response Header
Accept-Ranges: bytes
Content-Length: 2416
Content-Type: application/font-woff
Date: Sun, 23 Jun 2019 05:39:21 GMT
Last-Modified: Mon, 05 Nov 2018 15:58:57 GMT
Server: Apache/2.4.18 (Ubuntu)
Run Code Online (Sandbox Code Playgroud)
我也试过没有 ExpiresActive 和 ExpiresDefault “访问加 1 个月”,但仍然无法再次工作。有什么问题?如何缓存这种字体?其他对象,如 CSS、JS 和所有图像都通过 Cache-Control 方法正确缓存,但我仍然无法缓存 woff 字体。
通过此代码修复了问题:
<filesMatch ".(jpg|jpeg|png|gif|ico|svg|ttf|eot|woff|woff2)$">
Header set Cache-Control "max-age=31536000, public"
</filesMatch>
Run Code Online (Sandbox Code Playgroud)