Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

WebP без тяжелых модулей


Recommended Posts

От вопроса сразу к делу. Для начала нам нужна поддержка webp на сервере, по настройке на vps есть замечательный мануал от digitalocean, если это нормальный shared то думаю включат без проблем на beget работает из коробки и далее ставим модификатор, и вуаля получаем прогрессивный формат всех изображений на сайте без танцев с бубном и модулей 

WebP.ocmod.xml

Змінено користувачем stickpro
  • +1 5
Надіслати
Поділитися на інших сайтах

11 минут назад, stickpro сказал:

От вопроса сразу к делу. Для начала нам нужна поддержка webp на сервере, по настройке на vps есть замечательный мануал от digitalocean, если это нормальный shared то думаю включат без проблем на beget работает из коробки и далее ставим модификатор, и вуаля получаем webp без танцев с бубном и модулей 

WebP.ocmod.xml 1 \u043a\u0411 · 4 downloads

 

Надо попробовать, однозначно большое спасибо! Вопрос не играет роль версия opencart?

Змінено користувачем Anatohi
Надіслати
Поділитися на інших сайтах


Только что, Anatohi сказал:

 

Надо попробовать, однозначно большое спасибо! Вопрос не играет роль версия opencart?

тестировалось на 2.3 остальные версии не проверял

Надіслати
Поділитися на інших сайтах

30 минут назад, stickpro сказал:

Для начала нам нужна поддержка webp на сервере

Для начала нужна поддержка на шаред exec, а уж потом спрашивать за webp.

 

  • +1 1
Надіслати
Поділитися на інших сайтах

1 минуту назад, ibond сказал:

Для начала нужна поддержка на шаред exec,

так ведь бесплатно же.. (я вам ничего не обещал (с))

  • +1 2
Надіслати
Поділитися на інших сайтах

$re = '/(cache)(.*)(\.jpg|\.png|.jpeg)/U';

cache/image/jpegнтуая картинка.png

 

upd
Прошу прощения но регулярка рабочая.


cache/image/jpegнтуая картинка.PNG
а так не рабочая.

Надіслати
Поділитися на інших сайтах

Ну как бы webp только для оптимизаторов параноиков ибо как вот
https://caniuse.com/#feat=webp
https://www.stetic.com/market-share/browser/

т.е если Ваша аудитория сидит не с Apple гаджетов, то вроде как и ОК, в противном случае как минимум 30% webp не увидит

Надіслати
Поділитися на інших сайтах

@stickpro , интересно, в как апачи сможет отдать картинку если у вас работает, например, nginx + апачи, что бывает в 99.9% случаев на общем хостинге?

У вас же ее апачи отдавать собрался?

Тоже самое касается случаев чистого nginx.

В 99.9% случаев именно nginx отдает картинки. Апачи даже понятия не имеет, что в природе существуют картинки. До апачи даже запрос от браузера не доходит, его обрабатывает nginx. И только nginx видит вот это:

 

HTTP_ACCEPT: image/webp

 

Апачи никогда его не увидит, только в случаях:

1) если у вас работает только апачи, что является крайне непроизводительной схемой работы сервера. На общем хостинге вы вряд ли такое встретите. VDS, настроенные кое-как в расчет не берем.

2) если хостер позволил вам переключить обработку статики с сервера nginx на апачи.  Но таких хостеров можно по пальцам пересчитать. А во-вторых, это будет снова непроизводительная схема, т.е. заведомо понижается производительность.  Т.е. улучшается одно за счет ухудшения другого.  Конечно, чисто для эксперимента это годится.

 

Кстати, открою секрет, что никакого кода php не нужно чтобы апачи отдавал webp если апачи обрабатывает статику. И вы напрасно изобретали велосипед на php.  Этот код давно известен, и у меня он тоже открыто опубликован прямо здесь на форуме:


 

# 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 mod_headers.c>
Header append Vary Accept env=REDIRECT_accept
</IfModule>

AddType image/webp .webp

<FilesMatch "\.(jpg|jpeg|gif|png|ico|webp)$">
    Header set Cache-Control "max-age=2592000, must-revalidate"
</FilesMatch>

 

 

да, в вашем случае (даже если все заработает), то гугл будет еще ругаться, что у вас изображения не кешируются в браузере, и снизит за это вам оценку.

Но на такие мелочи, думаю, что не стоит даже обращать внимание.

 

давайте будем исходить из того, что у 95% пользователей все же не VDS, а общий хостинг, и нередко с отключенным exec. Там, где VDS - там нет ограничений никаких, но это слишком малый процент пользователей.

 

главное чтобы каждый хостер предоставил возможность пользоваться сwebp. Таймвеб уже предоставил?

Помню, давеча вы таймвеб приводили в качестве примера. Можете показать как сайт на таймвебе отдает страницы с картинками в формате webp?

Надіслати
Поділитися на інших сайтах

6 минут назад, Waha сказал:

т.е если Ваша аудитория сидит не с Apple гаджетов, то вроде как и ОК, в противном случае как минимум 30% webp не увидит

 

и гугл посчитает реальное время загрузки страницы для этих устройств от Apple.

А не будет обращать внимание на съэмулированные баллы. Баллы во время эмуляции - это лишь примерная первичная оценка гугла.  Он всегда ориентируется в конечном счете по реальным показателям, полученным из статистики.

 

У хостеров на общем хостинге еще бывает неприятность.  Это ограничение по нодам, грубо говоря вам дают 20Гиг диска, но только 10 000 нод.  Т.е. кол-во файлов у вас лимитировано.  И его хватает пока у вас только JPEG, например, сжатый, а на webp уже нод не хватает.  Вам ведь нужна пара файлов в таком случае.

Это мне один заказчик поведал.  На практике всегда не все так гладко как в теории.  А потому этот заказчик сказал, что его отлично устраивает мой сжатый JPEG за счет mozjpeg.

Надіслати
Поділитися на інших сайтах

5 минут назад, sitecreator сказал:

 

и гугл посчитает реальное время загрузки страницы для этих устройств от Apple.

А не будет обращать внимание на съэмулированные баллы. Баллы во время эмуляции - это лишь примерная первичная оценка гугла.  Он всегда ориентируется в конечном счете по реальным показателям, полученным из статистики.

 

У хостеров на общем хостинге еще бывает неприятность.  Это ограничение по нодам, грубо говоря вам дают 20Гиг диска, но только 10 000 нод.  Т.е. кол-во файлов у вас лимитировано.  И его хватает пока у вас только JPEG, например, сжатый, а на webp уже нод не хватает.  Вам ведь нужна пара файлов в таком случае.

Это мне один заказчик поведал.  На практике всегда не все так гладко как в теории.  А потому этот заказчик сказал, что его отлично устраивает мой сжатый JPEG за счет mozjpeg.

Сикиль, ну реально... попридержи коней со своим модулем и не затыкай им любое решение по зжатию картинок. ну не время и не к месту. Можно и без твоего модуля в 95/100 зайти. Особенно имея VPS

Надіслати
Поділитися на інших сайтах

1 минуту назад, sitecreator сказал:

 

и гугл посчитает реальное время загрузки страницы для этих устройств от Apple.

А не будет обращать внимание на съэмулированные баллы. Баллы во время эмуляции - это лишь примерная первичная оценка гугла.  Он всегда ориентируется в конечном счете по реальным показателям, полученным из статистики.

 

У хостеров на общем хостинге еще бывает неприятность.  Это ограничение по нодам, грубо говоря вам дают 20Гиг диска, но только 10 000 нод.  Т.е. кол-во файлов у вас лимитировано.  И его хватает пока у вас только JPEG, например, сжатый, а на webp уже нод не хватает.  Вам ведь нужна пара файлов в таком случае.

Это мне один заказчик поведал.  На практике всегда не все так гладко как в теории.  А потому этот заказчик сказал, что его отлично устраивает мой сжатый JPEG за счет mozjpeg.

Готовы ли для комьюнити допилить мод?  Eсли нет то прошу администрацию @dinox удалить посты @sitecreator за флуд

  • +1 3
Надіслати
Поділитися на інших сайтах

5 минут назад, stickpro сказал:

Ну ничего другого, как ответа вопросом на вопрос

 

не стесняйтесь, спрашивайте, что именно вам непонятно, я еще раз повторю.

какое именно предложение неясно?

 

вы не поняли про nginx?  Так я поясню, не проблема. Вы не получите на общем хостинге доступ к конфигу nginx.  Я вас спрашивал в надежде, что вы знаете какой-то способ обойти это ограничение. Ну, а вдруг?

 

вам непонятно вот это утверждение в вопросительной форме? даже не знаю уместно ли спрашивать вас знакомо ли вам такое понятие как "риторический вопрос"?

 

20 минут назад, sitecreator сказал:

Если задача не имеет решения на общем хостинге, то смысл пытаться ее решить? 

 

тут же пояснил сразу:

 

20 минут назад, sitecreator сказал:

Но в общем случае она не имеет решения.

 

Еще раз:

 

способ, который вы выбрали не имеет в общем случае решения на общем хостинге из-за его особенностей. В подавляющем большинстве случаев у пользователя нет никакой возможности контролировать обработку изображений сервером. Общий случай я подробно уже описал выше (это nginx+ апачи. Статикой заведует именно nginx)   Есть исключения и для таких хостеров, но это все же редкость, мы же вроде бы рассматриваем универсальный вариант.

Надіслати
Поділитися на інших сайтах

если совсем коротко, то предложенное вами решение будет нерабочим в общем случае, т.е. в большинстве случаев.

В определенных случаях может вполне работать.

Если у кого-то будет работать, то и замечательно, значит,что не зря старались. И кому-то будет польза.

 

В принципе не имею ничего против вашего решения. Просто указал на отдельные его недостатки, для кого-то они могут и не быть недостатками.

Если у половины заработает, то и славненько. Другой половине я смогу помочь если что.

 

Надіслати
Поділитися на інших сайтах

25 минут назад, sitecreator сказал:

если совсем коротко, то предложенное вами решение будет нерабочим в общем случае, т.е. в подавляющем большинстве случаев.

В определенных случаях может вполне работать.

Если у кого-то будет работать, то и замечательно, значит,что не зря старались. И кому-то будет польза.

 

Я прекрасно вас понимаю,  продажи падают,  новый ягуар содержать не так легко,  но если моё бесплатное решение подойдет для,  40% пользователей сообщества,  это куда лучше для всего комьюнити чем торговля воздухом

Надіслати
Поділитися на інших сайтах

1 час назад, Waha сказал:

Сикиль, ну реально... попридержи коней со своим модулем

 

напомните, когда мы с вами на брудершафт пили, что вы мне "тыкать" решили?

не могу припомнить....а если не пили, то отчего эта фамильярность и быдло-тон?

 

Если у вас есть аргументы в виде кода или чего-то не менее существенного, то милости просим. Но "Сикиль" разве, что в подворотне сойдет за аргумент.

Думаю, что вы просто забылись на каком форуме находитесь. Тут так не принято. И, заметьте, что я даже не упоминал про модуль в этой теме. Вы уже видите то, чего даже нет в тексте? Это риторический вопрос, так, на всякий случай...

Надіслати
Поділитися на інших сайтах

Пожалуйста, вот вам картинки с циферками и буковками.

Все же понимают, что здесь представлено? Это браузер FireFox

Надеюсь, что автор кода тоже сможет понять одну из принципиальных своих ошибок. Не говорю, что единственную.

Она совершенно четко указана на этих 2-х скриншотах. 

 

@stickpro ,   уже поняли, про что идет речь?

Я имею ввиду вашу принципиальную ошибку в вашем коде, которая делает его неработоспособным во многих случаях.

 

 

 

 

 

DcrU8OQ.jpg

 

Gf1esz6.jpg

  • +1 1
Надіслати
Поділитися на інших сайтах

Смотрим какие заголовки отправляет браузер на сервер при ожидании документа HTML:

 

браузер Хром:

 

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3

 

а вот браузер FireFox:

 

text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 

 

Вот же ж печаль, досада!  Этот браузер не отправляет при получении HTML никакой информации про webp. Он эту информацию отправляет только при запросе изображений. И что же мы тогда ищем, используя php?

 

if( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' ) !== false )

 

@stickpro , ваша же строчка?

Не знали, не учли?   Ну, бывает.....

А в других браузерах кроме Хрома смотрели, мож там тоже какая "засада" кроется?

В браузере от майкросфт тоже такой же принцип отправки запроса на сервер как у FF, но кто им пользуется то, не смотря на поддержку webp? 

 

Прошу заметить, что мы и так условно считаем, что у нас на сервере есть апачи, и именно апачи обрабатывает изображения, доступны на сервере EXEC и собран хостером cwebp, который разрешено использовать в виде короткой команды.   Т.е. и так мы уже рассматриваем довольно редкую комбинацию звезд на небосклоне.

Так к этому еще добавляется, что и не в любом браузере работает, который поддерживает webp?

 

Зато бесплатно, зато без "тяжелых модулей". Честно говоря, мне сложно судить в скольких случаях из 100 решение будет работать.  Я обратил ваше внимание лишь на 2 принципиальные проблемы, которые не позволяют получить результат в подавляющем большинстве случаев.  Не считаю нужным смотреть в сторону мелких ошибок, которые также могут привести не к тем результатам, которые ожидались. Они, с одной стороны, мелкие, а с другой - они сводят на нет собственно функцию данного решения и приводят лишь к пустому пожиранию пространства жесткого диска или SSD без ожидаемого результата.

 

Знаете, вспомнилась (вроде бы к месту) поговорка про соринку в чужом глазу и бревно в собственном.

Вот когда сможете разобрать лесоповал и бурелом в собственном коде, то тогда, возможно, что сможете указывать другим на их песчинки. Но прежде обязательно проверьте, а не торчит ли у вас где-то бревнышко снова.

 

Итак, каков итог?

Есть код, который работает при определенных условиях на сервере и только в случае если конечный пользователь использует определенный браузер, а не любой, поддерживающий webp.

Считаю, что в целом это достойный результат. Отчего ж не пользоваться?

 

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах

8 часов назад, chukcha сказал:

$re = '/(cache)(.*)(\.jpg|\.png|.jpeg)/U';

cache/image/jpegнтуая картинка.png

 

upd
Прошу прощения но регулярка рабочая.


cache/image/jpegнтуая картинка.PNG
а так не рабочая.

 

это такие мелочи, коллега.... я мог бы привести массу вариантов еще когда она будет нерабочей. А смысл?

В основном же работает? Ну вот! Этого вполне достаточно.

 

Неидеальное решение, но придираться не стоит.   Человек хочет нести людям пользу. А это главное.

Вон сколько спасибо в репу сказали, значит, что все устраивает. Оценивает же конечный потребитель.

 

  • +1 3
Надіслати
Поділитися на інших сайтах

@sitecreator ещё раз повторюсь,  готовы ли допилить мод для комьюнити?  Нет?  Прошу перестать флудить в теме,  никто не говорил,  что это идеальное решение,  но оно рабочее,  opencart 0.1 тоже не был самым стабильным движком,  но вырос в полноценную CMS за счет комьюнити,  а не за счет коршунов. 

  • +1 2
Надіслати
Поділитися на інших сайтах

@stickpro

У меня такой вопрос, а чего Вы в своем решении используете exec?

Не проще было бы использовать imagewebp()?

imagewebp с версии php 5.4 входит в GD библиотеку.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.