Как заставить WordPress показывать последние версии изображений в медиа-библиотеке?

22 февр. 2011 г., 03:41:12
Просмотры: 36.5K
Голосов: 7

Мой рабочий процесс иногда выглядит следующим образом:

  1. Удаляю несколько изображений из медиа-библиотеки одновременно (названных, например, 01.jpg, 02.jpg, 03.jpg...).
  2. Повторно загружаю серию изображений с теми же именами файлов (01.jpg, 02.jpg, 03.jpg...).

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

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

Спасибо.

5
Комментарии

Вы уверены, что это не просто кэширование изображений в вашем браузере? Попробовали CTRL + F5?

t31os t31os
22 февр. 2011 г. 04:01:40

@t31os Спасибо за ответ. Я уверен, что это просто кэширование изображений в моём браузере. Но (мне следовало уточнить) я не единственный пользователь. Мне бы не хотелось просить пользователей обновлять страницу каждый раз при удалении или добавлять неудобное принудительное обновление страницы после удаления изображения.

User User
22 февр. 2011 г. 19:51:15

Поставил +1 к обоим текущим ответам (мои последние два голоса за сегодня), использование query-переменной — хороший метод для сброса кэша.. :)

t31os t31os
22 февр. 2011 г. 20:04:29

Разве нет также плагина для WordPress, который принудительно перегенерирует миниатюры?

noel saw noel saw
23 февр. 2011 г. 03:18:18

Спасибо всем.

У меня всё в порядке с фронтендом CMS. Нет способа сбросить кеш медиа-галереи/библиотеки без редактирования ядра, верно?

mod_expires, возможно, мой лучший вариант.

User User
23 февр. 2011 г. 03:18:37
Все ответы на вопрос 3
1

@t31os Спасибо за ответ. Я уверен, что это просто мой браузер кэширует изображения. Но (мне следовало уточнить) я не единственный пользователь. Я бы предпочёл не говорить своим пользователям обновлять страницу каждый раз, когда они что-то удаляют, или использовать неуклюжий способ с принудительным обновлением страницы после удаления изображения.

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

Вы можете использовать небольшой обходной путь, вызывая изображение таким образом: http://yoursite.com/images/01.jpg?v1 и http://yoursite.com/images/01.jpg?v2 — это позволит загрузить одно и то же изображение дважды.

22 февр. 2011 г. 19:52:15
Комментарии

Да, на самом деле это тот самый трюк, который использует WP при постановке в очередь скриптов/стилей, когда вы указываете их версию: https://codex.wordpress.org/Function_Reference/wp_enqueue_script

NoBugs NoBugs
15 янв. 2016 г. 06:03:57
0

Это проблема кеширования браузера, а не медиатеки WordPress. Причина, по которой вы видите старые изображения в галерее, заключается в том, что вы использовали то же имя файла, и ваш браузер пытается сэкономить время и трафик, загружая уже сохранённые версии.

Есть два способа решить эту проблему.

Cache Busting (обход кеша)

Добавьте query-переменную (?v=5) в конец имён ваших изображений, используемых на фронтенде. Это не повлияет на медиатеку... но предотвратит показ устаревших версий изображений из кеша браузера. Для справки: этот же метод используется в ядре WordPress, чтобы заставить браузер перезагружать обновлённые JavaScript-файлы.

mod_expires

Вы можете настроить ваш сервер (Apache) для установки пользовательской даты и времени "истечения срока действия" (expires) для разных изображений — либо по расширению (все jpg или png файлы), либо по имени файла, если требуется детальная настройка. Это более продвинутый метод, но с его помощью можно мгновенно очистить кеш у всех пользователей при загрузке новых изображений.

22 февр. 2011 г. 19:58:40
1
-1

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

25 нояб. 2021 г. 08:20:25
Комментарии

Добро пожаловать на wpse! Чем этот ответ отличается от ответа @EAMann? Похоже, что это точно такой же ответ, но с меньшим количеством информации. Если они действительно различаются, пожалуйста, рассмотрите возможность добавить больше деталей. В текущем виде это копия ответа @EAMann.

Buttered_Toast Buttered_Toast
25 нояб. 2021 г. 09:28:30