首页 > 解决方案 > 在 htaccess 文件中缓存字体的问题

问题描述

我在 .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)

我也试过没有 ExpiresActive 和 ExpiresDefault “访问加 1 个月”,但仍然无法再次工作。有什么问题?如何缓存这种字体?其他对象,如 CSS、JS 和所有通过 Cache-Control 方法正确缓存的图像,但我仍然无法缓存 woff 字体。

标签: .htaccess

解决方案


通过此代码修复了问题:

<filesMatch ".(jpg|jpeg|png|gif|ico|svg|ttf|eot|woff|woff2)$">
Header set Cache-Control "max-age=31536000, public"
</filesMatch>

推荐阅读