我生成了 *.webp 文件,它们的名称与它们的 png 或 jpg 源完全相同。然后我将它添加到我的 .htaccess 中:
<IfModule mod_rewrite.c>
RewriteEngine On
# Does browser explicitly support webp?
RewriteCond %{HTTP_USER_AGENT} Chrome [OR]
# OR Is request from Page Speed
RewriteCond %{HTTP_USER_AGENT} "Google Page Speed Insights" [OR]
# OR does this browser explicitly support webp
RewriteCond %{HTTP_ACCEPT} image/webp [OR]
# AND does a webp image exists?
RewriteCond %{DOCUMENT_ROOT}/$1\.webp -f
# THEN send the webp image and set the env var webp
RewriteRule (.+\.(?:jpe?g|png))$ $1.webp [NC,L]
</IfModule>
<IfModule mod_mime.c>
AddType image/webp .webp
</IfModule>
我的期望:
所有 jpg 文件都正常加载,例如 /test/marc.jpg 如果存在同名的 webp,则通过 url /test/marc.jpg 提供 webp 文件
webp文件的这个作品是存在的。但是如果我删除一个 webp 文件,我会在 jpg 或 png url 上得到一个 404。即使是旧的 jpg 或 png 网址也会给出 404。例如:
/www/media/
.htaccess
marc.jpg
marc.webp
http://domain/marc.jpg 服务于 webp。我在禁用缓存的情况下从 chrome 进行测试。当我删除 marc.webp 时,我在 http://domain/marc.jpg 上得到 404 为什么?RewriteCond %{DOCUMENT_ROOT}/$1.webp -f 应该可以解决这个问题,对吧?