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

[Решено {фантазия}] Кеширование картинок - проблема


iga8

Recommended Posts

Проблема такая! Если мы добавим одну картинку в описание товара, то эта картинка размножаться на несколько маленьких картинок. Основная картинка попадёт в папку image, а размноженные картинки в папку image/cache и image/cache/data. На одну картинку приходится до 10 размноженных. Это значит, что если будет 1000 товаров с основными картинками, то добавиться 10 000 размноженных. Размноженные картинки можно смело удалять - сайт будет работать нормально. Но они будут заново генерироваться, когда кто-то зайдет на сайт для просмотра товара. Это является большой проблемой в опенкарт у кого хостинг не резиновый. И единственный способ избавиться от этой проблемы является - удаление картинок через определённый промежуток времени с помощью команды Cron. Например я хочу чтобы эти картинки удалялись через каждый час. Посетитель зайдет, сгенерируются картинки, и через час эти картинки удаляться. Вопрос: как настроить cron что бы он уделял картинки из папки через определённый промежуток времени.

 

P.S. - если мы создадим простой html документ и загрузим на сервер одну картинку, то мы можем вставить в документ данную картинку неограниченное число раз и в разных размерах. То есть, мы можем 10 раз указать путь к картинке в документе, и картинка будет одна. Почему такое нельзя сделать в опенкарт?

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


:?

вы смысл кеширования понимаете?

 

не нужно удалять картинки из кеша - если только у вас они все сразу не поменялись

структура opencart в этом плане вполне неплоха - он из основной картинки создает и помещает в кеш картинки, настройки размеров которых заданы в админке

 

например - в каталоге картинка 100х100, в карточке товара - большая, 400х400, в корзине 40x40 и тд

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

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

 

все это вместо того, чтобы каждый раз загружать вашу оригинальную картинку и масштабировать ее до нужного размера

 

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

и если отказаться от кеша - каждый раз, вне зависимости от нужного размера будет загружаться именно картинка 100кб.

например, для показа в корзине картинки 40x40 (занимающей обычно около 5кб в кеше) будет грузиться 100кб.

а если в корзине 10 товаров? это грузить 1МБ только для показа корзины!

 

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

не грузите на сайт изображения более 150кб, используйте сжатие и обработку в графическом редакторе.

 

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

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

Сделано очень глупо! Почему нельзя было стандартно - там где вывод картинок указать пути, а в css задать размеры ширину и высоту. И тогда одна картинка выводится во многих местах - и не дробиться.

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


Сделано очень глупо! Почему нельзя было стандартно - там где вывод картинок указать пути, а в css задать размеры ширину и высоту. И тогда одна картинка выводится во многих местах - и не дробиться.

как вы внимательно читали оратора выше :)
Надіслати
Поділитися на інших сайтах

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

 

3387303_original.jpg

 

Основная картинка попадёт в папку image, а размноженные картинки в папку image/cache и image/cache/data. На одну картинку приходится до 10 размноженных. 

 

 

:ugeek:

 

Хотя больше похоже на паранойю.

 

Вам однозначно нужно забить на всём что касается опенкарт ,как движка.И тогда не будет причин  для столь неистового  возмущения .

 

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

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

  • 10 months later...

 

Сделано очень глупо! Почему нельзя было стандартно - там где вывод картинок указать пути, а в css задать размеры ширину и высоту. И тогда одна картинка выводится во многих местах - и не дробиться.

Интересно, что по трафику получается. Картинку передаётся по интернету один раз и берётся в разные места на экран из кэша браузера или каждый раз подгружается с сервера? Было бы интересно узнать, какие значения трафика при запросе на разные браузеры.

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


Плохо получается по трафику. И по времени. Ибо при таком подходе вам пришлось бы даже для самых мелких изображений грузить их полноразмерную версию.

В итоге - страница с полусотней товаров в глубоком ступоре, браузер виснет, пользователь закрывает к черту этот дерьмосайт, хостер писает кипятком из-трафика. Хотите острых ощущений?

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


  • 1 year later...

Народ, мне просто интересно, я даже не собирался так делать, ногами не бейте )
А что будет, если грохнуть image/catalog ? все равно же используется кэш, зачем оставлять оригиналы? у меня эта папка занимает 7 gb памяти, скоро будет все 12. Ну или скачать на комп, а с сервера грохнуть? 

Что скажут знатоки?

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


По аналогии можно выстрелить в ногу....Ну или уши отморозить на зло бабушке.

По сути не нужно искать ,что грохнуть ради экономии,нужно задуматься о расширении возможностей хостинга.

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

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

А что будет, если грохнуть image/catalog ? все равно же используется кэш, зачем оставлять оригиналы?

это как отксерить паспорт и выбросить оригинал

 

будет работать ровно до того момента, пока не понадобится именно оригинал

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

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

  • 10 months later...

Беда не в том, что генерируются файлы в папку, а в том что создаются огромные файлы.

Например, создался  в папке файл размером 1,9 мБайт, я сжал сервисом его tinypng.com  файл стал весить 54кБайт.

 

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

 

 

eva-2mm-belui-700x700.png

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


используйте формат jpg вместо png, там где он дает выигрыш

плюс изначально обрабатывайте оригиналы

 

как вариант, есть такой модуль

 

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

Еще одна сторона вопроса имеется. Ограничение на хостинге не по объему, а по количеству файлов на логине. И там тоже натыкаемся на проблему большого количества файлов, которые плодятся при большем пользовании сайтом и приближаются к критическим максимально допустимым хостером значениям.

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


19 минут назад, Shar сказал:

Ограничение на хостинге не по объему, а по количеству файлов на логине

 

чисто из любопытства - а если у вас каждый файл по 10гб будет? хостер не возражает? ;)

ищите нормальный хостинг

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

  • 2 weeks later...

Наш хостер сильно возражает, у нас 30 гигов место а по кол-ву файлов 500 тыс. всего. Для нашего небольшого магазина это уже огромные напряги. Всю голову сломал как быть. Менять хостера это конечно вариант. Но пока не встретил альтернативы достойной... может плохо ищу...

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


  • 5 months later...

Подскажите пожалуйста.

с папки image/cache были удалены некоторые картинки.

Теперь на странице категорий сайте нет некоторых картинок товаров. В карточке товар есть.

Я та понимаю, что не хватает некоторых ресайзов. Как мне их востановить? Или может подскажите как запустить кеширование принудительно?

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


3 часа назад, vkravez сказал:

с папки image/cache были удалены некоторые картинки.

Теперь на странице категорий сайте нет некоторых картинок товаров. В карточке товар есть.

Я та понимаю, что не хватает некоторых ресайзов. Как мне их востановить?

 

если вы сами оригиналы из image не трогали - движок при просмотре страниц автоматом создаст картинки нужных размеров в кеше

выше все это обсуждалось

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

20 часов назад, AlexDW сказал:

 

если вы сами оригиналы из image не трогали - движок при просмотре страниц автоматом создаст картинки нужных размеров в кеше

выше все это обсуждалось

Вопрос решен.
Все было банально просто. Нашел какие картинки не кешируються и скачал оригиналы. Выяснолось, что картинки были 2500х3700 пикс.  Исправил на 500х1500 и все ок.

 

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


Всем привет.

К примеру у меня оригинал изображения 800х500 весит 50 Кб.

В кэше это изображение с этим же размером 800х500 создается с размером в 130 Кб.

Почему так? У всех так? 

jpg

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


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

Всем привет.

К примеру у меня оригинал изображения 800х500 весит 50 Кб.

В кэше это изображение с этим же размером 800х500 создается с размером в 130 Кб.

Почему так? У всех так? 

jpg

 

Странно, но не реагирует на изменения в строке:

public function save($file, $quality = 90) {

 

Ниже заменил $quality на 90

и размер изображения в кэше стал почти 1:1 к оригиналу:

if (is_resource($this->image)) {
            if ($extension == 'jpeg' || $extension == 'jpg') {
                imagejpeg($this->image, $file, 90);

 

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


  • 1 year later...

Привет всем.

Загружаю товары через Экспорт-импорт export import .xlsx. 

Путь к изображению выгружаю из 1с (только при загрузке меняю на каталог на хостинге)

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

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

Вопрос: как прокешировать изображения всех товаров? (если добавлять вручную изображение через админку все кешируется автоматически) 

 

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


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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