Главная > Magento > Magento 2: Не отображаются картинки, проблемы с static контентом

Magento 2: Не отображаются картинки, проблемы с static контентом

14.05.2019 0 коммент. » Просмотры: 115

Magento 2

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

Начнем с того, что откроем консоль разработчика в браузере (F12), перейдем на вкладку Network, перезагрузим страницу и посмотрим на url ресурсов которые не открываются.

Версионирование

Если url указывает на что-то вроде: /static/version123123123/frontend/.../image.jpg , то нужно сравнить это с тем, что у вас находится в папке /pub/static/.. очень часто бывает, что файлы лежат внутри нее, но не в /static/version123123123/frontend/, а в /static/frontend/ - это указывает на то, что в базе данных у вас установлен флаг для версионирования статического контента. Версионирование используется для того, чтобы при обновлении статического контента, использовалась новая версия, а не закешированная.

Для того, чтобы избавиться от version123123123, есть два пути, первый, подходит для случаев, когда админка не работает должным образом. В таком случае, идем в базу данных и в таблице core_config_data находим запись с значением dev/static/sign в столбце path, для этого можно использовать запрос

Если в столбце value установлено значение 1, то его нужно поменять на 0. Сделать это можно вот таким запросом:

Если же записи нет, то ее можно добавить такой командой

Второй вариант, подойдет если с админкой все ок, нужно сходить вот сюда

и изменить значение "Sign Static Files" с Yes на No

Редирект с http на https

Еще одной частой проблемой бывает, что после того как база скопирована с прода, на локальное окружение, были заменены url-ки в core_config_data, на что-то по типу http://site.local, но картинки все равно пытаются грузится с https://site.local. В таком случае, нужно проверить в core_config_data такие параметры и если они равны "1", то установить их в "0":

  • web/secure/use_in_frontend
  • web/secure/use_in_adminhtml
  • web/url/redirect_to_base

Для этого можно выполнить такой SQL

После этого, необходимо сбросить кеш

Отсутствие статического контента

Другой частой проблемой, бывает отсутствие каких-либо файлов в папке /pub/static/ или их устаревшая версия. Для того, чтобы перегенерировать файлы в этой папке, нужно выполнить следующую команду:

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

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

выполненяются команды из корневой директории magent-ы.

Важной особенностью является то, что эта команда не затрагивает скрытые файлы, такие как например .htaccess

Тоже самое можно сделать используя админку, если она работоспособна

Вывод

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

Похожие статьи

Автор: | Рейтинг: 4/5 | Теги: , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>