[英]Right click "save as" selects jpg image instead of webp, but webp is displayed
我正在使用 .htaccess 向支持它的浏览器提供 webp 图像。
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
RewriteRule (.+)\.(jpe?g|png|gif)$ $1.webp [T=image/webp,E=REQUEST_image]
Header append Vary Accept env=REQUEST_image
AddType image/webp .webp
基本上它所做的是从同一位置返回一个 .webp 图像而不是请求的 jpg/png/gif,如果它存在并且受支持。
这在 Chrome、Firefox、IE11、Edge 中运行良好……尚未测试 Safari。
然而,我的问题是,当我右键单击网站时,“另存为”,它会自动选择 .jpg 版本。 如果 .jpg 版本不存在,它会尝试保存整个 html。 预期行为是它保存显示的 .webp 版本(如果使用)。 奇怪的是,在执行相同操作时,它确实尝试在 Firefox 中保存 .webp,但是当我在 Firefox 中使用页面信息(Windows 上的 ctrl+i)尝试相同的操作时,它选择了 .jpg。
这怎么可能? 这有什么遗漏/错误吗?
我检查了显示的图像是否是实际的 webp,确实如此。 内容类型和文件大小都与 webp 相匹配。
我的工作解决方案是:
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -f
RewriteRule (.+)\.(jpe?g|png|gif)$ $1.webp [T=image/webp,E=REQUEST_image]
所以尝试将RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
更改为
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -f
在 Safari 和 Firefox 上测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.