Не отображаются некоторые картинки

Главные вкладки

Аватар пользователя Tuan Tuan 9 сентября 2022 в 15:59

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

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

Лучший ответ

Аватар пользователя gun_dose gun_dose 11 сентября 2022 в 13:35
1

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

https://www.valuebound.com/resources/blog/drupal8-nginx-default

Комментарии

Аватар пользователя Tuan Tuan 9 сентября 2022 в 17:20
marassa wrote:
Html-код страницы умеете посмотреть? Что там?



Не совсем )

Конкретно этот блок (участок с аватаркой):

Аватар пользователя Tuan Tuan 9 сентября 2022 в 17:23

эти картинки не отображаются вне зависимости от темы.
Так же картинка не отображается при ее непосредственном выборе в настройках профиля.

Аватар пользователя OldWarrior OldWarrior 9 сентября 2022 в 17:29

Я повторю вопрос: какой HTTP-статус приходит при загрузке битой картинки? 200 или 404 или 403 или другой...
Проверить можно либо из консоли, либо просто вбив URL картинки в строку браузера.

PS. А вообще - могли бы и ссылку на сайт дать.

Аватар пользователя Tuan Tuan 9 сентября 2022 в 17:30

OldWarrior wrote: какой HTTP-статус приходит при загрузке битой картинки? 200 или 404 или 403 или другой...

А, в этом смысле.. 404 (если кликнуть "открыть изображение в новой вкладке" на тексте вместо нее)

Аватар пользователя marassa marassa 9 сентября 2022 в 17:31

Скорее всего не формируются стилизованные картинки. И скорее всего из-за неправильных прав доступа к директории /sites/default/files/styles. Или из-за неправильных настроек веб-сервера. И html-код лучше давать в текстовом виде - никто же не будет в здравом уме вручную перебивать с Вашего скриншота URL, который нужно попробовать.

Аватар пользователя OldWarrior OldWarrior 9 сентября 2022 в 17:32

Другой момент: судя по HTML коду на скриншоте - используется lazy-загрузка картинок. Возможно, причина в механике lazy load или её настройках. Например, тайм аута.

Аватар пользователя OldWarrior OldWarrior 9 сентября 2022 в 17:40

Я начал комментарий до ответа ТС. Ну теперь-то да, понятно.
Кстати, причина вряд ли также в настройках папки /sites/default/files/styles или вебсервера поскольку (как уверяет ТС) в материалах картинки отображаются. Правда там может стиль и не используется.

Аватар пользователя OldWarrior OldWarrior 9 сентября 2022 в 17:38

Tuan wrote: 404 (если кликнуть "открыть изображение в новой вкладке" на тексте вместо нее)

Вы открывали изображение с параметром ?itok="..." (как в вашем HTML-коде) в конце URL ?

Аватар пользователя Tuan Tuan 9 сентября 2022 в 17:41

OldWarrior wrote:
Tuan wrote: 404 (если кликнуть "открыть изображение в новой вкладке" на тексте вместо нее)

Вы открывали изображение с параметром ?itok="..." (как в вашем HTML-коде) в конце URL ?

Да. Открывает: http://drupal/sites/default/files/styles/thumbnail/public/pictures/2022-...

Аватар пользователя Tuan Tuan 9 сентября 2022 в 17:52

marassa wrote:
Открывает в смысле показывает? И при этом ту же картинку в комменте не показывает?

Нет, в смысле такой адрес при открытии картинки.

Картинку показывает только в админке, в "содержимом".

Аватар пользователя marassa marassa 9 сентября 2022 в 19:20

Ну значит не генерируются стили. Надо смотреть что в логах, какие настройки веб-сервера (какого?) в части несуществующих на диске картинок, какие права у директории /sites/default/files/. Работает ли image toolkit (какой?).

Аватар пользователя Tuan Tuan 9 сентября 2022 в 19:42

В папке Styles было пусто.
Создал в ней папки: thumbnail\public\pictures\2022-09, кинул туда картинку - аватарка появилась...

Так же заметил, что помимо default\files\pictures\2022-09, загружаемые картинки появились в default\files\2022-09 и default\files\inline-images...

marassa wrote: какие настройки веб-сервера (какого?)

Конкретнее?
Друпал стоит на OSPanel, отдельно ничего в локалке не настраивал

marassa wrote: Надо смотреть что в логах,

Какие именно логи нужны и после какого действия?
Сейчас заново загрузил аватарку - в "последние записи журнала" появляется 13 записей cron

Аватар пользователя OldWarrior OldWarrior 9 сентября 2022 в 20:07

Smile

К автору топика: я правильно понимаю, что картинки не грузятся только в комментариях (когда пользователь их загружает через редактор) и в профилях пользователя?

То есть, в материалах/нодах картинки грузятся нормально и тоже со стилем (т.е. НЕ оригиналы картинок)?

Аватар пользователя Tuan Tuan 9 сентября 2022 в 20:22

OldWarrior wrote: картинки не грузятся только в комментариях (когда пользователь их загружает через редактор) и в профилях пользователя?

Из того что увидел - да.

OldWarrior wrote: тоже со стилем (т.е. НЕ оригиналы картинок)?

По крайней мере в "материале" размер картинки сжимается под структуру(размеры) "блока"

Аватар пользователя Tuan Tuan 10 сентября 2022 в 13:22

Переставил друпал "начистую". Установка друпала, выбрана "стандартная установка", после нее захожу - загружаю аватар профиля - то же самое. Картинка грузится не в ту папку...

Аватар пользователя Tuan Tuan 10 сентября 2022 в 14:33

ivnish wrote:
В какую, не в ту? И в какую должна?

Читайте выше..

Конкретно аватарка пытается взять картинку из default/files/styles/thumbnail/public/pictures/2022-09/, а грузятся они в default\files\pictures\2022-09

Аватар пользователя OldWarrior OldWarrior 10 сентября 2022 в 14:59

Судя по всему, всё, к чему применяются стили - не грузится. Я бы присмотрелся к совету marassa выше:

marassa wrote:... Работает ли image toolkit (какой?).

Аватар пользователя Tuan Tuan 10 сентября 2022 в 15:11

OldWarrior wrote: image toolkit

Сейчас поставлено только то, что ставится друпалом по-умолчанию в варианте "стандартная установка".

Аватар пользователя gun_dose gun_dose 10 сентября 2022 в 15:18

Всё у вас правильно грузится. Прсто права на папку sites/default/files неправильные. Либо неправильный владелец папки.

Аватар пользователя Tuan Tuan 10 сентября 2022 в 15:49

gun_dose wrote: Всё у вас правильно грузится.

Загрузка в 3 разные папки + корень сайта - это нормально? Тогда у друпала все печально...

gun_dose wrote: права на папку

Ок, допустим. Где\как это посмотреть?

Аватар пользователя Tuan Tuan 10 сентября 2022 в 19:07

Нашел, что такая хрень часто возникает на разных версиях друпала (видимо именно на локальных серверах), но нигде не нашел реального решения...
(https://drupal.ru/node/136823
https://www.drupal.org/forum/support/post-installation/2015-06-16/image-...)

Сделал это:

create sites/default/files/styles folder manually
set its permissions to 775
create .htaccess file with following content:

SetHandler none

все пофиг...
Права к папкам - все права на чтение\запись и т.п. стоят, но на папку безвариантно ставится "только чтение" (если снять - тут же ставится галка обратно...)

Аватар пользователя Tuan Tuan 10 сентября 2022 в 19:08

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

Аватар пользователя Tuan Tuan 10 сентября 2022 в 19:49

marassa wrote:
Есть, называется Linux. Там всё работает как надо, в отличие от винды.

Для одаренных линуксоидов - откройте первую ссылку в предыдущем посте:

Помогите, пожалуйста, разобраться с проблемой.

Drupal 8.5.3
ОС - Линукс
Сервер - Apache2+php7.1+mariadb

Аватар пользователя marassa marassa 10 сентября 2022 в 19:56

Tuan wrote: откройте первую ссылку в предыдущем посте

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

Аватар пользователя Tuan Tuan 10 сентября 2022 в 20:46

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

Аватар пользователя Tuan Tuan 10 сентября 2022 в 21:28

gun_dose wrote:
А что в журнале ошибок?

Ничего.
При загрузке новой картинки - в журнале (общем, 403 и 404) ничего не создается.

Аватар пользователя Tuan Tuan 10 сентября 2022 в 21:32

в Nginx-логе ospanel есть вот такое:

2022/09/11 01:23:21 [warn] 12172#10132: *1 a client request body is buffered to a temporary file g:/ospanel/userdata/temp/1/00/0000000001, client: 127.0.0.1, server: drupaltest, request: "POST /user/1/edit?element_parents=user_picture/widget/0&ajax_form=1&_wrapper_format=drupal_ajax&_wrapper_format=drupal_ajax HTTP/1.1", host: "drupaltest", referrer: "https://drupaltest/user/1/edit"

2022/09/11 01:23:21 [error] 12172#10132: *1 CreateFile() "g:/ospanel/domains/drupaltest/sites/default/files/styles/thumbnail/public/pictures/2022-09/P_20211022_165614_vHDR_Auto.jpg" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: drupaltest, request: "GET /sites/default/files/styles/thumbnail/public/pictures/2022-09/P_20211022_165614_vHDR_Auto.jpg?itok=fWhdcP6G HTTP/1.1", host: "drupaltest", referrer: "https://drupaltest/user/1/edit"

Аватар пользователя gun_dose gun_dose 10 сентября 2022 в 23:53

А если открыть картанку в новой вкладке, 404 страница стандартная nginx-овская или друпаловская с логотипом сайта?

Аватар пользователя OldWarrior OldWarrior 11 сентября 2022 в 8:44

Tuan wrote:... Не работают (не создаются), остальные типы - миниатюры и т.п. (которые должны автоматом создаваться при загрузке основной картинки)

Неверное понимание процесса. Картинки стилей (любые) физически создаются не "при загрузке основной картинки", а при первом обращении к, собственно, ним. То есть, пока браузер не запросит картинку со стилем по её определённому URL - её (картинки) не существует. Друпал имеет специальные роут и механизм для динамического создания таких картинок "на лету".

То, что картинка "грузится в нескольких папок" - это нормально. Точнее так: изначально есть папка, в которой хранится основное загруженное изображение. А вот папки внутри /sites/default/files/styles соответственно создаются при первом запросе картинки со стилем.

Аватар пользователя Tuan Tuan 11 сентября 2022 в 11:22

OldWarrior wrote: Неверное понимание процесса. Картинки стилей (любые) физически создаются не "при загрузке основной картинки", а при первом обращении к, собственно, ним. То есть, пока браузер не запросит картинку со стилем по её определённому URL - её (картинки) не существует. Друпал имеет специальные роут и механизм для динамического создания таких картинок "на лету".

Ну тут не суть. Главное что этого не происходит )

Аватар пользователя Tuan Tuan 11 сентября 2022 в 11:23

gun_dose wrote: А если открыть картанку в новой вкладке, 404 страница стандартная nginx-овская или друпаловская с логотипом сайта?

стандартная вроде как (без каких-либо упоминаний друпала)

Аватар пользователя gun_dose gun_dose 11 сентября 2022 в 13:35
1

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

https://www.valuebound.com/resources/blog/drupal8-nginx-default

Аватар пользователя Tuan Tuan 11 сентября 2022 в 14:24

gun_dose wrote: Тогда проблема в настройках nginx

Действительно. Убрал использование nginx в настройках - все заработало как надо.

Благодарю за помощь, но тогда еще вопрос - "на практике" nginx для чего нужен ? (и нужен ли). Простая вставка блока из 31 строки в конфиг не канает..

Аватар пользователя ivnish ivnish 11 сентября 2022 в 14:28

Nginx это вебсервер. Он может работать один, а может стоять перед апачем для кэширования и быстрой отдачи статики

Аватар пользователя gun_dose gun_dose 11 сентября 2022 в 14:49
1

Скорее всего, у вас теперь вместо nginx используется Apache. И то, и другое - веб-серверы. Иногда используются вместе, но чаще по раздельности. Какой лучше - это очень обширный вопрос)) для простых проектов по большому счету без разницы. Но у apache есть большое преимущество для новичков - он конфигурируется через .htaccess и по умолчанию друпал уже содержит этот файл с базовыми настройками, достаточными для работы. А вот при использовании nginx все заботы о его конфигурации полностью ложатся на ваши плечи.

Аватар пользователя Tuan Tuan 11 сентября 2022 в 14:46

ivnish wrote:
Nginx это вебсервер. Он может работать один, а может стоять перед апачем для кэширования и быстрой отдачи статики

Конкретно у ospanel ест варианты - апач + пхп + нгинкс, апач + пхп и просто один нгинкс.
Критично ли использование нгинкса, или (по кэшированию и т.п.) его функции можно "продублировать" плагинами в самом сайте?

Аватар пользователя Tuan Tuan 11 сентября 2022 в 14:52

gun_dose wrote:
Скорее всего, у вас теперь вместо nginx используется Apache. И то, и другое - веб-серверы. Иногда используются вместе, но чаще по раздельности. Какой лучше - это очень обширный вопрос)) для простых проектов по большому счету без разницы. Но у apache есть большое преимущество для новичков - он конфигурируется через .htaccess и по умолчанию друпал уже содержит этот файл с базовыми настройками

Понял )