Автор Тема: на страницах пропали картинки после включения второго языка  (Прочитано 1355 раз)

03 Июль 2016, 15:38:27
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Затупил и завис на переводе на мультиязычность (prestashop 1.6.1.5)
1) включил второй язык eng;
2) страницы (именно "о нас", "оплата" ...) не показывают картинки потому, что в адресе добавилось после домена "ru" https://kitaidar.com/ru/img/cms/... поэтому и пропали картинки.
3) на страницах товара все картинки отображаются нормально (их адрес https://kitaidar.com/img/cms/)
Ищу второй день, толком правильного решения не могу принять, то ли редиректить, толи реврайтурл переделать...
прошу профессионалов посоветовать как правильно и малой кровью исправить отображение картинок на страницах описания (не товара).

P.S.: вот страница косячная: О НАС

в админке при редактировании страницы все картинки на месте, они отсутствуют именно при выводе страницы
(вторые сутки без сна, где-то туплю, а понять не могу...)
UPD:
1) посмотрел что в таблице ps_cms_lang:
img src="../img/cms/%D1%80%D0%B5%D...все нормально, при выводе где-то реврайт происходит на https://kitaidar.com/ru/img/cms/р% ((

2) вот в админке редактирование страницы "О НАС":
03 Июль 2016, 22:21:49
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В алминке в настройках изображения перегенирируйте изображения.
Выключите чпу, удалите файл htaccess.
Включите чпу.
Если картинки все равно не появятся, заняит нужно менять адреса у ручную, редактируя страницы.
04 Июль 2016, 09:12:03
Ответ #2
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В алминке в настройках изображения перегенирируйте изображения.
Выключите чпу, удалите файл htaccess.
Включите чпу.
Если картинки все равно не появяься, заняит нужно менять адреса у ручную, редактируя страницы.
1) Делали перегенерацию;
2) Выключали ЧПУ, картинки появлялись, но после включения ЧПУ снова добавляется /ru/ после домена;
3) Делали тоже самое и с файлом htaccess - при данной манипуляции он создается заново;
4) В админке (на скриншоте показано) все картинки показываются нормально, пробовали добавлять новые - опять в админке нормально отображаются, но вот на самой странице нет.
На страницах товара все отлично! ТОЛЬКО на информационных страницах.
04 Июль 2016, 09:44:36
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если картинки все равно не появятся, заняит нужно менять адреса у ручную, редактируя страницы.
Переключите редактор в вид кода и измените url изображения.
04 Июль 2016, 09:55:05
Ответ #4
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если картинки все равно не появятся, заняит нужно менять адреса у ручную, редактируя страницы.
Переключите редактор в вид кода и измените url изображения.
в самом первом посту указали, что адрес картинок в редакторе нормальный, без /ru/.
Уже при выводе страницы добавляет эту /ru/.

upd: нашел похожее упоминание подобной проблемы, но там до конца не решено.
Сервер на digitalocean, debian ставил сам, доступ полный.
upd2: я так понял это бывает из-за:
1) несоответствия версии PHP, а следовательно синтаксиса .htaccess
2) наличия конфликта ngixn и Apache
3) у некоторых помогает отключение на сервере оптимизации изображений

At final: не решил вопрос - просто вернул один язык, думаю сделать домен третьего уровня eng.kitaidar.com и там развернуть вторую престу и использовать мультимагазин.
Если у кого будут решения - с огромным удовольствием выслушаю!
Если честно - пребываем в шоке, больше бесит непонятки.
04 Июль 2016, 10:53:09
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Конфинрунация сервера какая? Apache,Nginx, версия php?
Для Apache правила в htaccess какие?
Для Nginx какие правила редиректа?
04 Июль 2016, 11:09:58
Ответ #6
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
1) информация о сервере со страницы админки престы:
 Информация о сервере Linux #1 SMP Debian 3.2.65-1+deb7u1 x86_64
Версия веб-сервера Apache/2.2.22 (Debian)
Версия PHP 5.4.45-0+deb7u2

2) Вот содержание htaccess (не нашел у вас спойлер чтобы убрать):
# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>

RewriteEngine on


#Domain: kitaidar.com
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api$ api/ [L]

RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]

# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|svg)$">
Header add Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
ExpiresByType application/font-woff "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType font/opentype "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/otf "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-otf "access plus 1 year"
</IfModule>

<IfModule mod_headers.c>
Header unset Etag
</IfModule>
FileETag none
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript font/ttf application/x-font-ttf font/otf application/x-font-otf font/opentype
</IfModule>
</IfModule>

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

php_value max_input_vars 5000
04 Июль 2016, 11:21:34
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все правила стандарные.
Если у вас нет дополнительных модулей для изменения seo или кеширования, то должно работать.
04 Июль 2016, 11:26:05
Ответ #8
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все правила стандарные.
Если у вас нет дополнительных модулей для изменения seo или кеширования, то должно работать.
в том то и дело - все выходные в шоке находились. Сторонних модулей для сео и кэша не ставили, во время подключения второго языка все родные функции кэширования отключали.
Печально что все выходные долбились, а так и не разобрались  >:(
04 Июль 2016, 12:16:07
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В папке /override/classes/ есть файлы? Может быть вы замещали базовые классы prestashop и забыли удалить?
04 Июль 2016, 12:36:13
Ответ #10
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В папке /override/classes/ есть файлы? Может быть вы замещали базовые классы prestashop и забыли удалить?
сами туда не лезли, при переходе с 1.5 престу ставили с нуля (когда вышла 1.6), чтобы избежать ошибок, товар забивали вручную. Сейчас перебираем в голове что могло послужить данному факту, но вроде нестандартных шагов по конфигурации не производили. Сейчас версия 1.6.1.5.
Все таки не хочется делать домен 3 уровня и в нем создавать дополнительную нагрузку в виде еще одной престы, хочется решить данную проблему. Решили с женой добить эту проблему!
Пожалуйста, подскажите, каким образом при включении второго языка происходит редирект всех страниц на kitaidar.com/ru/ ?
И самое что сбивает с толку - на страницах товара ведь все нормально!  :-[
т.е. имеем:
1) в описании товара любые вставленные картинки (хранящиеся в папке img) отображаются во всех случаях!
2) на любой странице сайта (О НАС, ОПЛАТА, ДОСТАВКА, т.е. не описание товара) при включении второго языка те же картинки из папки img перестают выводиться по причине добавления в URL картинки /ru/.
04 Июль 2016, 13:04:29
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Вы включите языки, создайте новкю стрнаицу, вставьте новую картинку. Имя у картини должно быть латиницей и маленькими буквами, без пробелов и спец. знаков.
При просмотре кода страницы адрес картинки доджен быть полный
src="http://site.ru/img/cms/cms-img.jpg"а не такой как у вас
src="../img/cms/%D1%80%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0/%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D0%B4%D0%B0%D1%80.jpg"
04 Июль 2016, 13:38:20
Ответ #12
  • Новичок
  • *
  • Сообщений: 11
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вы включите языки, создайте новкю стрнаицу, вставьте новую картинку. Имя у картини должно быть латиницей и маленькими буквами, без пробелов и спец. знаков.
При просмотре кода страницы адрес картинки доджен быть полный
src="http://site.ru/img/cms/cms-img.jpg"а не такой как у вас
src="../img/cms/%D1%80%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0/%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D0%B4%D0%B0%D1%80.jpg"
что-то мы и не догадались )), точно, спасибо Вам за подсказку, хоть какое-то решение. Жаль что в автомате не сделать, но с другой стороны статичных страниц не так уж и много - будем вручную дописывать домен к имени картинки.
Благодарю за подсказку!

upd: может легче будет в самой престе поменять формирование "относительных путей" на полные? Может кто наводку дать куда смотреть?

upd_2: все равно не пойму, почему такая избирательность???:
на странице товара вот этот код обрабатывается нормально:
src="../img/cms/%D1%80%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0/%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D0%B4%D0%B0%D1%80.jpg"а на простой странице этот же адрес картинки выдается с добавочным /ru/.

P.S.: из нестандартного установлен модуль "Shortcode", но ведь даже если бы было бы влияние данного модуля, то это влияние распространялось бы на все страницы!  :-\