Для разрешения добавления картинок в формате WebP в 1C-Bitrix вам понадобится выполнить несколько шагов:
- Проверьте, поддерживает ли ваш сервер формат WebP. Для этого вы можете добавить простой PHP-файл с кодом:
<?php echo function_exists('imagewebp') ? 'WebP поддерживается' : 'WebP не поддерживается'; ?>
После сохранения файла, откройте его в веб-браузере, и если вы видите сообщение "WebP поддерживается", то ваш сервер поддерживает формат WebP. Если вы видите сообщение "WebP не поддерживается", вам понадобится настроить сервер для поддержки WebP.
- Если сервер не поддерживает формат WebP, вам необходимо установить библиотеку libwebp на ваш сервер. Для этого вам потребуется доступ к командной строке и права администратора. В Linux-системах вы можете установить библиотеку libwebp с помощью менеджера пакетов вашей операционной системы. Например, в Ubuntu вы можете выполнить команду:
sudo apt-get install libwebp-dev
В Windows вы можете скачать предварительно собранный файл DLL из официального сайта libwebp (https://developers.google.com/speed/webp/docs/precompiled) и добавить его в папку с вашим сервером.
- После установки библиотеки libwebp на ваш сервер, вам необходимо настроить 1C-Bitrix для загрузки и отображения изображений в формате WebP. Для этого вам потребуется модифицировать файл .htaccess в корневой папке вашего сайта.
Откройте файл .htaccess и добавьте следующие строки в секцию <IfModule mod_rewrite.c>
:
RewriteCond %{HTTP_ACCEPT} image/webp RewriteRule .(jpg|jpeg|png)$ - [E=IMAGEWEBP:T] # Проверяем, поддерживает ли браузер формат WebP RewriteCond %{ENV:IMAGEWEBP} ^T RewriteCond %{DOCUMENT_ROOT}/$1.webp -f RewriteRule (.+).(jpg|jpeg|png)$ $1.webp [L] # Если поддерживает, передаем изображение в формате WebP
- После сохранения изменений в файле .htaccess, вам необходимо изменить код, который загружает и отображает изображения на вашем сайте. Для этого вам потребуется редактировать соответствующие файлы шаблона вашего сайта или компонента 1C-Bitrix.
- В файле компонента, который отвечает за загрузку и отображение изображений, вы должны изменить код, который формирует HTML-код со ссылками на изображения. Например, вместо использования тега
<img src="image.jpg">
вы должны использовать следующий код:
<?php $imagePath = "/path/to/image.jpg"; if (function_exists('imagewebp') && file_exists($_SERVER['DOCUMENT_ROOT'].$imagePath.".webp")) { echo "<picture>"; echo "<source srcset='".$imagePath.".webp' type='image/webp'>"; echo "<img src='".$imagePath."' alt='Image'>"; echo "</picture>"; } else { echo "<img src='".$imagePath."' alt='Image'>"; } ?>
Теперь ваш сайт сможет загружать и отображать изображения в формате WebP, если браузер поддерживает этот формат. Это позволит улучшить производительность вашего сайта благодаря уменьшению размеров файлов изображений и увеличению их качества.