Очистить один URL-адрес из кэша


Используя стандартную систему кэширования Drupal, есть ли способ очистить кэш для узла или URL-адреса без очистки всего кэша (что замедляет работу всего сайта)?

 9
Author: JM01, 2012-03-09

6 answers

Модуль Действия с кэшем обеспечивают очень точный контроль над очисткой кэша.

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

 6
Author: Letharion, 2012-03-09 17:40:50

Да, вы также можете сделать это программно.

В этом примере мы очищаем кэш главной страницы:

$url = url('<front>',  array('absolute' => TRUE));

cache_clear_all($url, 'cache_page');

Drupal хранит пути как CID в таблице, и в приведенном выше примере мы предоставляем URL-адрес главной страницы в качестве CID в качестве первого аргумента в функции, и если вы определяете CID, обязательно определите второй аргумент $bin в функции, который похож на то, из какой таблицы вы хотите удалить кэш. Поскольку мы должны удалить одну страницу, поэтому она присутствует в cache_page, которая содержит кэш для страниц.

 6
Author: Sahil Gupta, 2016-11-26 04:27:42

Для этого есть модуль: Очистить кэш страниц . Вот цитата об этом (со страницы проекта модуля):

Облегчение боли, когда вам нужно промыть... Кэш Друпала.

Очистка кэша Drupal на большом сайте может показаться, что вы ждете взлета на взлетно-посадочной полосе аэропорта Кеннеди. Задержка происходит из-за того, что, когда вы очищаете кэш Drupal, он очищает все. В большинстве случаев вы просто хотите очистить кэш для определенного объекта на странице.

В Модуль "Очистка кэша страниц" решает эту проблему, удаляя только кэшированные объекты для одной страницы. Кроме того, вы можете определить пользовательские объекты и таблицы кэша, которые будут очищены на определенных страницах.

 3
Author: giorgio79, 2020-06-15 09:13:00

Другим вариантом было бы создать форму и использовать функцию cache_clear_all на URL-адресе, кэш которого вы хотите очистить. Я нашел пример его использования здесь

 0
Author: zarsiwala, 2012-03-13 15:58:49

Немного опоздал на вечеринку, но модуль Cache Expire, вероятно, то, что вы ищете. Это дает вам действительно точный контроль над тем, как используется кэширование для нескольких типов сущностей (если вы используете версию модуля 2.x).

Однако любая версия модуля предоставляет вам доступ к действию правила " Очистить URL-адреса из кэша страниц". Таким образом, вы можете указать любые события и условия, необходимые для срабатывания правила, а затем Указанные вами URL-адреса будут удалены. Надеюсь, это поможет.

 0
Author: Lester Peabody, 2013-08-22 15:33:23

Очистка кэша может быть выполнена простым скачиванием модуля drush с http://drupal.org/project/drush

terminal->your drupal directory

Напишите команду drush cc

Это вернет вас с

[0] : Отменить
[1]: все
[2]: друш
[3]: тема-реестр [4]: меню
[5]: css-js
[6]: блок
[7]: список модулей
[8]: список тем
[9]: реестр
[10]: просмотры

Таким образом, вы можете выберите, какую вещь вы хотите очистить..

Если вы хотите очистить кэш с веб-сайта drupal, вы можете установить и включить модуль http://drupal.org/project/admin_menu Он предоставляет значок "Домой" на вашем сайте drupal и предоставит вам список меню, в котором вы можете выбрать для очистки кэша....

 -1
Author: Nitesh Sethia, 2013-04-05 12:07:31