mod_expires 忽略 webp 和 avif 缓存设置

问题描述 投票:0回答:1

我今天花了一个小时左右诊断这个问题,尽管该解决方案可能对其他人有帮助。

Apache 的响应标头为 webp 和 avif 文件提供默认过期时间(60 秒),即使我已将以下内容添加到我的 conf-enabled/expires.conf 文件中。

ExpiresByType image/webp "access plus 1 month"

ExpiresByType image/avif "access plus 1 months"

相同的设置也适用于其他 mime 类型。

我还检查了 Apache 的其他缓存相关设置,但没有任何更改影响随这些文件类型返回的标头。

Apache2.4 在 Ubuntu 20.04 服务器上运行。

apache mime-types webp mod-expires avif
1个回答
0
投票

服务器的 /etc/mime.types 文件中缺少 webp 和 avif 文件(作为相对现代的格式)。如果没有基本 mime 类型,Apache 会忽略设置的 ExpiresByType 指令。

要修复,请执行以下任一操作(或同时执行这两项操作):

1.将以下行添加到 /etc/mime.types

 image/webp                       webp
 image/avif                       avif

2.将以下行添加到 /etc/apache2/mods-enabled/mime.conf

 AddType image/webp .webp
 AddType image/avif .avif

两者都可以解决问题,但第一个解决方案在系统范围内添加文件类型,而第二个解决方案仅影响 Apache。

Ubuntu Linux 服务器 20.04 的文件位置正确。

© www.soinside.com 2019 - 2024. All rights reserved.