[英]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.