Рейтинг:1

Нужна помощь в восстановлении изображений после сброса кеша изображений

флаг in

TL;DR — очищенный кеш изображений для стиля изображения, который используется практически в каждом блоге. Они не восстанавливаются при загрузке страницы. Они восстанавливаются, когда я редактирую и сохраняю узел. Ищем способы программно отредактировать/сохранить все узлы.

Всем здравствуйте,

Как упоминалось выше, я пытаюсь найти способ программно пересохранить узлы или, по крайней мере, запустить процесс, который регенерирует изображение.

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

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

Я попытался использовать встроенную функцию «сохранить много», встроенную в представления. Однако повторное сохранение узла таким образом не решает проблему.

Я также попробовал модуль под названием «Пересохранить все узлы», и в конечном итоге это тоже не сработало. Примечание: все, что по сути делает этот модуль, это вызывает $node::load(x); $узел->сохранить(); партиями.

Таким образом, должен быть какой-то хук, который запускается после открытия страницы редактирования. Есть ли способ запустить все эти процессы, не переходя на страницу редактирования? Есть ли способ увидеть все хуки, запускаемые после открытия страницы редактирования?

Мое первое решение всегда грубой силы. В этом случае я бы использовал puppeteer или selinium и «вручную» перешел на страницы редактирования. Мне даже не нужно, чтобы страница полностью загружалась. кажется, мне просто нужно авторизовать запрос на страницу редактирования, и изображение перезагрузится.

Но должен быть лучший способ. Может ли кто-нибудь дать мне некоторое представление, пожалуйста?

Редактировать: Чтобы было ясно, моя установка использует модуль вставки, указанный выше, для вставки изображений в поля тела статьи. Изображения размещены на s3

sonfd avatar
флаг in
Это интересно.Что произойдет, если вы получите один из URL-адресов изображений при просмотре страницы и напрямую перейдете по этому URL-адресу?
флаг cn
Обычно все, что вам нужно сделать, чтобы восстановить стили изображений, — это посетить страницу узла (нередактируемую), поэтому это так же просто, как использовать wget для извлечения всех страниц вашего сайта. Значит, в вашей установке должно быть что-то необычное, что препятствует этому.
Joshua Jones avatar
флаг in
@sonfd Я только что пояснил в своем исходном сообщении. Но я размещаю свои изображения на s3, используя модуль s3fs. поэтому я получаю ошибку 403, потому что изображение не было восстановлено.
Joshua Jones avatar
флаг in
@PatrickKenny Согласен. Тем не менее, я предполагаю, что виновата моя комбинация модуля вставки и использования s3fs в качестве моей файловой системы для хостинга изображений/файлов. Может быть, просто модуль вставки, так как все остальные изображения регенерировались просто отлично. Так что я полагаю, что мой вопрос остается в силе. Есть ли способ программно запускать хуки, которые выполняются на экране редактирования?
sonfd avatar
флаг in
Вы очистили кэш(и)?
leymannx avatar
флаг ne
Я создал https://www.drupal.org/project/resave_all_nodes когда-то в прошлом. Вы можете выбрать тип узла, а затем повторно сохранить все узлы этого типа в пакете. Может помочь?
leymannx avatar
флаг ne
Вау, не знал, что 5 месяцев назад в Drush 11 было добавлено: `drush entity:save node --bundle=article` для повторного сохранения всех узлов типа article.
флаг id
Генерация варианта изображения — это автоматический процесс при загрузке страницы. Веб-сервер nginx?

Ответить или комментировать

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