Как работать с webp в Edge, IE и старых версиях Safari?

Я хочу уменьшить загрузку страницы, так как при сравнении webp с jpg или png, webp имеет гораздо меньший размер (в КБ), но вот проблема, он не работает в Edge, IE (11) и более старых версиях Safari (5.1.7).

В поисках решения я нашел сообщение @WaughWaugh https://stackoverflow.com/a/56021203/10966377, в котором опубликован инструмент, который преобразует webp в png, используя base64, но прежде чем я смогу спать без стресса, разве это не увеличивает нежелательную загрузку страницы, потому что он должен конвертировать webp в png?


person Joel2    schedule 20.05.2019    source источник


Ответы (2)


Он не передает PNG по проводу.

Затраты связаны с загрузкой самой библиотеки и использованием ЦП/памяти для ее запуска.

person Quentin    schedule 20.05.2019

Вы можете использовать комбинацию согласования содержимого и перезаписи URL-адресов, чтобы позволить веб-серверу обрабатывать это, но, конечно, это не позволит использовать WebP для неподдерживающих браузеров. Вот как вы можете сделать это с Apache (из .htaccess в папке с изображением):

<If "%{HTTP_ACCEPT} =~ /webp/">
    Options +MultiViews
</If>
<Else>
    RewriteEngine on
    RewriteCond   "$1.jpg"           -f
    RewriteRule   "^(.*)$" "$1.jpg"
</Else>

Таким образом, если запрос браузера содержит «webp» в заголовке Accept, он использует ConNeg, в противном случае обслуживается JPG, если он существует.

person DanMan    schedule 14.11.2019