Не создаются эскизы картинок товаров Есть решение

Эскизы картинок товаров перестали создаваться. На хостинге всё работает: и mod_rewrite, и места на диске достаточно. При загрузке картинки товара на сайт стандартные эскизы по умолчанию создаются, а вот когда в каком-нибудь шаблоне идёт запрос на другое разрешение картинки - эскиз уже не создаётся. Каковы могут быть причины такой проблемы со стороны самого движка? В каких файлах находятся функции, отвечающие за подобные действия? Если есть какие мысли, поделитесь пожалуйста.

18 ответов

  • 2
    Александр Викторович Музыченко 6 ноября 2013 02:59 # Решение
    Проверьте что у вас есть файлы:
    /wa-data/public/shop/products/.htaccess
    /wa-data/public/shop/products/thumb.php
  • 0
    Валерий Стогниев 6 ноября 2013 03:51 #
    и правда! .htaccess не было =) спасибо
  • -1
    And Партнер-разработчик 6 декабря 2013 18:54 #
    либо поправьте функцию в wa-apps/shop/lib/classes/ShopImage.class.php
    строчка 226
    было
    public static function getUrl($image, $size = null, $absolute = false)
    {
    $path = shopProduct::getFolder($image['product_id'])."/{$image['product_id']}/images/{$image['id']}/{$image['id']}.{$size}.{$image['ext']}";

    if (waSystemConfig::systemOption('mod_rewrite')) {
    return wa()->getDataUrl($path, true, 'shop', $absolute);
    } else {
    if (file_exists(wa()->getDataPath($path, true, 'shop'))) {
    return wa()->getDataUrl($path, true, 'shop', $absolute);
    } else {
    $path = str_replace('products/', 'products/thumb.php/', $path);
    return wa()->getDataUrl($path, true, 'shop', $absolute);
    }
    }
    }
    стало
    public static function getUrl($image, $size = null, $absolute = false)
    {
    $path = shopProduct::getFolder($image['product_id'])."/{$image['product_id']}/images/{$image['id']}/{$image['id']}.{$size}.{$image['ext']}";

    if (waSystemConfig::systemOption('mod_rewrite')) {
    if (file_exists(wa()->getDataPath($path, true, 'shop'))) {
    return wa()->getDataUrl($path, true, 'shop', $absolute);
    } else {
    $path = str_replace('products/', 'products/thumb.php/', $path);
    return wa()->getDataUrl($path, true, 'shop', $absolute);
    }
    }
    }
    • +1
      Вы совершенно не разобрались как работает генерация картинок, а даёте тут советы...
      Ваши правки приведут к тому, что если mod_rewrite выключен, то работать вообще ничего не будет, а если включен, то будет всегда лишняя проверка существования файла, которая замечательно переносится в .htaccess, который должен быть в папке /wa-data/public/shop/products/.htaccess и который перенаправляет отсутствуюшие файлы на скрипт /wa-data/public/shop/products/thumb.php
      Если у вас что-то не работает с включенным mod_rewrite, значит с очень большой вероятностью у вас нет .htaccess или thumb.php, либо как-то странно настроен апач.
      • +1
        996 996 16 августа 2015 12:14 #

        Александр, скажите, как можно всю логику приложения строить на .htaccess и Apache с мод рерайтом? А если у меня связка NGINX + PHP-FPM? Сейчас у меня та же проблема, что и у людей, которые сверху отписывались. Как ее решать?

        • +1
          admin33 admin33 9 октября 2015 09:50 #

          присоединяюсь к вопросу !

          • +1
            Андреич Андреич 16 февраля 2017 22:59 #

            не помогает! ни рестрат ни отчистка кеша...

            server {
                listen      192.168.1.13:80;
                server_name autorazbor.pro www.autorazbor.pro;
                root        /home/andrew/web/autorazbor.pro/public_html;
                index       index index.php;
            
                access_log  /var/log/nginx/domains/autorazbor.pro.log combined;
                access_log  /var/log/nginx/domains/autorazbor.pro.bytes bytes;
                error_log   /var/log/nginx/domains/autorazbor.pro.error.log error;
            
                try_files $uri $uri/ /index.php?$query_string;
            
                location /api.php {
                    fastcgi_split_path_info  ^(.+\.php)(.*)$;
                    include /etc/nginx/fastcgi_params;
                    fastcgi_pass  127.0.0.1:9002;
                }
            
                location ^~ /wa-data/protected/ {
                    #return 403;
                    #X-Accel-Redirect
                    internal;
                }
            
                location ~* ^/wa-(log|config|cache|system)/ {
                    return 403;
                }
            
                location ~* ^/wa-data/public/contacts/photos/[0-9]+/ {
                     root /home/andrew/web/autorazbor.pro/public_html/;
                     access_log off;
                     expires  30d;
                     error_page   404  =  @contacts_thumb;
                }
            
                location @contacts_thumb {
                    include /etc/nginx/fastcgi_params;
                    fastcgi_pass  127.0.0.1:9002;
                    fastcgi_param  SCRIPT_NAME  /wa-data/public/contacts/photos/thumb.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root/wa-data/public/contacts/photos/thumb.php;
                }
                # photos app
                location ~* ^/wa-data/public/photos/[0-9]+/ {
                    access_log   off;
                    expires      30d;
                    error_page   404  =  @photos_thumb;
                }
            
                location @photos_thumb {
                    include /etc/nginx/fastcgi_params;
                    fastcgi_pass  127.0.0.1:9002;
                    fastcgi_param  SCRIPT_NAME  /wa-data/public/photos/thumb.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root/wa-data/public/photos/thumb.php;
                }
                # end photos app
            
                # shop app
                location ~* ^/wa-data/public/shop/products/[0-9]+/ {
                    access_log   off;
                    expires      30d;
                    error_page   404  =  @shop_thumb;
                }
                location @shop_thumb {
                    include /etc/nginx/fastcgi_params;
                    fastcgi_pass  127.0.0.1:9002;
                    fastcgi_param  SCRIPT_NAME  /wa-data/public/shop/products/thumb.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root/wa-data/public/shop/products/thumb.php;
                }
                # end shop app
            
                # mailer app
                location ~* ^/wa-data/public/mailer/files/[0-9]+/ {
                    access_log   off;
                    error_page   404  =  @mailer_file;
                }
                location @mailer_file {
                    include /etc/nginx/fastcgi_params;
                    fastcgi_pass  127.0.0.1:9002;
                    fastcgi_param  SCRIPT_NAME  /wa-data/public/mailer/files/file.php;
                    fastcgi_param  SCRIPT_FILENAME $document_root/wa-data/public/mailer/files/file.php;
                }
                # end mailer app
            
                location ~* ^.+\.(jpg|jpeg|gif|png|js|css)$ {
                    access_log   off;
                    expires      30d;
                }
            location / {
              try_files $uri $uri/ /index.php?$uri&$args;
              location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
                expires     max;
              }
            
              location ~ [^/]\.php(/|$) {
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                  if (!-f $document_root$fastcgi_script_name) {
                    return  404;
                  }
            
                  fastcgi_pass    127.0.0.1:9002;
                  fastcgi_index   index.php;
                  include         /etc/nginx/fastcgi_params;
              }
            }
            
               error_page  403 /error/404.html;
               error_page  404 /error/404.html;
               error_page  500 502 503 504 /error/50x.html;
            
               location /error/ {
                    alias   /home/andrew/web/autorazbor.pro/document_errors/;
               }
               location ~* "/\.(htaccess|htpasswd)$" {
                    deny    all;
                    return  404;
               }
            
               location /vstats/ {
                    alias   /home/andrew/web/autorazbor.pro/stats/;
                    include /home/andrew/web/autorazbor.pro/stats/auth.conf*;
               }
            
                include     /etc/nginx/conf.d/phpmyadmin.inc*;
                include     /etc/nginx/conf.d/phppgadmin.inc*;
                include     /etc/nginx/conf.d/webmail.inc*;
            
                include     /home/andrew/conf/web/nginx.autorazbor.pro.conf*;
            }

            что поправить?

            • +1
              Евгений Евгений 24 июля 2019 12:25 #

              День добрый! 

              Подскажите, как удалось решить проблему?

              Сам мучаюсь с такой же.

          • +1
            alex3d alex3d 7 декабря 2021 22:34 #

            это все работает для fastcgi, а для php-fpm нет ли у кого решения?

  • 1
    Lamfadel 17 января 2014 03:55 #
    Аналогичная беда!
    После очередного обновления, стало невозможным добавить ни одного товара!
    Создаю товар как обычно или копирую, добавляю изображения, тоже как обычно... Все загружается и отображается в админке, а превьюшки не на витрине, ни в самом товаре в магазине не появляются. Картинка сама есть, если нажать на пустое место и нажать "открыть в новом окне", то она открывается!
    Вот так:
    http://www.luce.lamfadel.com/shop/nasto … -marco-co/
    Все ранее добавленные отображаются нормально.
    Что делать? Написал в службу поддержки, ответили вот что:
    "При обращении по ссылке http://www.luce.lamfadel.com/shop/wa-da … 83.200.jpg ваш веб-сервер по непонятным причинам изменяет изначально запрошенный URL на http://www.luce.lamfadel.com/shop/wa-da … 3.200.jpg/ (добавляет символ / В конце). Из-за этого скрипт генерации картинок пытается обратиться к другому (притом несуществующему!) элементу файловой системы вместо указанного файла с оригинальным изображением, поэтому и возникает ошибка. Обратитесь к вашему хостеру"
    Хостеру написал, но что-то нет уверенности в каком-то положительном ответе, разбираются 2-й день уже.
    С чего он вдруг стал изменять и добавлять этот символ? Никто ничего не трогал...

    Кто-нибудь может посоветовать как быстро это исправить? Я в скриптах не очень...
    • +2
      Amet Amet 5 мая 2015 07:18 #

      Как решилась проблема? У меня 1 в 1 ситуация!

  • 1

    можете выложить оба файла, а то у меня их нет и не ясно откуда брать...

  • 2
    artur-er 16 июля 2015 01:33 #

    У меня та же проблема зоомиг.рф

    Все файлы /wa-data/public/shop/products/.htaccess и /wa-data/public/shop/products/thumb.php на месте.

  • 1
    Алина М. 2 октября 2021 13:19 #

    Скажите пожалуйста как решили этот вопрос 

    У мен эти файлы есть и все с ними нормально

    Проверьте что у вас есть файлы:
    /wa-data/public/shop/products/.htaccess
    /wa-data/public/shop/products/thumb.php

    эту инструкцию хостер выполнил, но не помогло 

    https://developers.webasyst.ru...

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите