PrestaShop изображения не отображаются, когда включен дружественный URL-адрес

PrestaShop изображения не отображаются, когда включен дружественный URL-адрес

07.05.2019 03:27:27 Просмотров 49 Источник

После установки нового SSL сертификата и изменения версии PHP с 5.x до 7.1.28 изображения продуктов больше не отображаются в интерфейсе, инструменты Chrome dev показывают ошибку 404 для файлов изображений. Они отображаются в бэкэнде в разделе каталог продуктов.

Похоже, что каталог изображений отсутствует, т. е. что-то вроде /home-default/, потому что в HTML-коде файл изображения должен находиться непосредственно в корневом каталоге документа, что, очевидно, неверно.

Когда я выключаю "дружественный URL", изображения отображаются. Что я пытался до сих пор:

  1. Удаленный.реврайт, перешли дружественных URL для того, чтобы регенерировать .htaccess
  2. Очистил кэш и восстановил миниатюры изображений
  3. Переключился обратно на PHP 5.4
  4. Добавлено AllowOverride All в конфигурацию vhost

Ничего не помогает. На сервере есть еще одна установка PrestaShop, запускающая ту же версию PrestaShop 1.6.18 также под PHP 7.1.28, там "дружественный URL" отлично работает.

Должен сказать, я понятия не имею, где искать эту проблему.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/56022653/prestashop-images-not-showing-when-friendly-url-is-switched-on#comment98696942_56022653
Привет @Гарри, вы используете Nginx или Apache? Можете ли вы опубликовать скриншот вкладки "сеть" из консоли веб-браузера?
https://stackoverflow.com/questions/56022653/prestashop-images-not-showing-when-friendly-url-is-switched-on#comment98726048_56022653
Привет @Bruno, Apache с nginx в качестве обратного прокси-сервера. Здесь представлены скриншоты с дружественными URL на: РНБ.СК/nm0p9i с дружественными URL-адрес: РНБ.СК/nm0pum
https://stackoverflow.com/questions/56022653/prestashop-images-not-showing-when-friendly-url-is-switched-on#comment98730910_56022653
Ваши правила перезаписи PrestaShop определены в Nginx или Apache? Вот пример для Nginx: gist.github.com/julienbourdeau/79961e9caa4263e9e34d2d056948d335 который также включает правила для URL-адресов изображений. Кроме того, я бы рекомендовал отказаться от Apache и просто пойти с Nginx + PHP-FPM 7.3.x использование FastCGI для получения наилучшей производительности. Я надеюсь, что это поможет, если нет, попробуйте пинговать меня в чате Stackoverflow PrestaShop.
https://stackoverflow.com/questions/56022653/prestashop-images-not-showing-when-friendly-url-is-switched-on#comment98813768_56022653
@BrunoLeveque мы используем Apache, переписывает работу, единственная проблема-это изображения. Мы используем Apache 7.1.28 в качестве модуля FPM, используя op_cache и nginx для статического содержимого сервера, что дает лучшую производительность.

Ответы - PrestaShop изображения не отображаются, когда включен дружественный URL-адрес / PrestaShop images not showing when friendly-URL is switched on

Является ответом!
Bruno Leveque

12.05.2019 10:29:34

Проведя некоторое время с @Harry, отлаживая его конфигурацию, мы нашли решение, и я уверен, что это поможет многим другим.

@Гарри использовал комбинацию с Nginx + Apache.

  1. Мы проверили его тема .htaccess файл и убедился, что RewriteEngine был включен и сработал правильно (например, страницы были правильно переписаны, только изображения не были) - все было в порядке.
  2. Мы попытались написать себе базовый рерайтер, чтобы перенаправить a .jpg и он не работал, показывая страницу Nginx 404.
  3. Мы пришли к выводу, что Nginx обрабатывает весь статический контент (JS, CSS, JPEG и т. д.) и не переадресовывать его на Apache.

Решение

Мы удалили эту часть из конфигурации Nginx:

location ~ ^/(.*\.(ac3|avi|bmp|bz2|cue|dat|doc|docx|dts|eot|exe|flv|gz|htm|html|img|iso|jpeg|mkv|mp3|mp4|mpeg|mpg|ogg|ppt|pptx|qt|rar|rm|swf|tar|tgz|ttf|txt|wav|xls|xlsx|zip))$ {
                try_files $uri @fallback;
}

В качестве общего совета я бы предложил не использовать Apache+Nginx, PrestaShop уже очень хорошо работает с Nginx+PHP-FPM, и вы получите отличные выступления.

Если вы выберете это решение, не забудьте установить правила перезаписи PrestaShop непосредственно в Nginx (пример ).

Закрыть X