alex63
23.10.2019 11:15
4
Популярный формат jpg уже устарел и создан новый, более эффективный формат webp. Но к сожалению ios устройства и ie не поддерживают этот формат. Есть конструкция для apache, которая позволяет проверить поддерживает ли браузер webp или нет. Если поддержка есть и существует файл с таким же путем но с расширением webp то отдать webp.
Проверил локально и глобально - работает как нужно. Такую же условную подмену можно сделать и на nginx. Но у меня как у пользователя нет доступа к конфигурации nginx. Поэтому сейчас у меня есть выбор либо jpg отметить как не статический (не будет обрабатываться nginx, а будет передаваться apache, что не эффективно) либо отказаться от оптимизации в виде подмены фото.

Хотелось бы, что бы данный функционал (проверка поддержки формата и проверка существования альтернативного файла) Вы реализовали для nginx. За одно можно выполнить такую же проверку и для формата JPEG 2000 (для ios)

На apache это выглядит так
<IfModule mod_rewrite.c>
RewriteEngine On
# Check if browser support WebP images
RewriteCond %{HTTP_ACCEPT} image/webp
# Check if WebP replacement image exists
RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
# Serve WebP image instead
RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept env=REDIRECT_accept
</IfModule>
AddType image/webp .webp
Тема закрита.