Я нашел одну (две...) картинку, которую Компрессор не переводит в WEBP, почему?
Какие символы в адресе картинки URI/URL модуль Компрессор воспринимает как верные (валидные), а на какие не реагирует?
Это к вопросу
а почему модуль картинкуне преобразовал в WEBP?Код:Doska заборнаяMPK,281,29.jpg
Потому, что символы пробела, запятой и кириллица в принципе не должны быть в URI/URL. Эти символы могут быть в названии файла при использовании их внутри ОС Linux, Windows, но не могут быть в URI/URL согласно стандарту RFC3986. Согласно стандарту кроме латинских букв и цифр могут быть еще только следующие знаки в названии файла, передаваемом в URL :
- _ . ~
Все остальные символы URL (вроде той же кириллицы, арабской вязи и т.д. и т.п.) в названии файла (папки) должны быть обязательно закодированы. Процентно-кодированный символ представляет из себя символьный триплет, состоящий из знака "%" и следующих за ним двух шестнадцатеричных чисел.
Спецсимволы вроде : & ?
и т.п. используются в URI/URL для специальных целей.
Вот так должно выглядеть название файла Doska заборнаяMPK,281,29.jpg
в URI/URL:
Doska%2520%D0%B7%D0%B0%D0%B1%D0%BE%D1%80%D0%BD%D0%B0%D1%8FMPK%252C281%252C29.jpg
Т.е., как видите, никаких пробелов, запятых и кириллицы быть не должно в URL. Для картинок, которые обрабатывает движок получается именно такого вида URL. Если у вас это не так, то это значит, что, возможно, один из основополагающих механизмов движка поломан или намеренно изменен неграмотным образом. Или просто используется сторонний код, автор которого не предполагал, что в названии файла может быть помимо латиницы и цифр нечто иное. Вообще, в принципе использование в названиях файлов пробелов, кириллицы и т.д. - дело неблагодарное, т.к. это всегда приводит рано или поздно к некоторым неудобствам или неприятностям. Но в идеальном мире правильно URL-кодированные такие имена не должны приводить к проблемам.
Движок Opencart использует для кодирования "неправильных" символов функцию rawurlencode
, которая как раз работает по стандарту RFC3986. Откуда тогда берутся на странице невалидные URI/URL (ссылки)? Из-за ошибок, когда ухитряются непонятными способами все же разместить в итоговом коде такие запрещенные стандартом URI/URL. Почему же браузер показывает изображения по таким неверным ссылкам? Потому, что браузеры научились исправлять многие ошибки, причем, даже нередко очень грубые ошибки. Но верно исправить ошибку браузер может не всегда и не везде, да и не любой браузер.
Конечно, ничто не мешает пользователю руками вбить в код HTML какую-угодно ссылку. Но, как минимум, сам движок при обработке изображений дает для них валидный URL. Движок Opencart всегда работает по стандарту RFC3986. Модуль Компрессор тоже работает в полном соответствии с этим стандартом. Попытка обработки невалидных (не соответствующих стандарту) ссылок на изображения может привести к непредсказуемым коллизиям, глюкам и багам, а потому такая обработка не производится, сами невалидные ссылки не приветствуются, но и не мешают нормальной работе Компрессора, нестандартные ссылки просто игнорируются. Все это сделано ради повышения общего уровня надежности и стабильности работы сайта.
ИТОГ. Для внутреннего использования внутри операционной системы название файла может содержать самые разные символы, буквы различных алфавитов и определенные специальные символы. Но для внешнего использования (когда веб-сервер передает информацию в браузер) URL, в котором будут представлены подобные названия файлов, определенным образом кодируется.
Нет комментариев для отображения