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

9

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

JM01
источник

Ответы:

6

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

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

Letharion
источник
6

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

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

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

cache_clear_all($url, 'cache_page');

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

Сахил Гупта
источник
3

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

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

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

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

giorgio79
источник
0

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

zarsiwala
источник
0

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

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

Лестер Пибоди
источник
-1

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

terminal->your drupal directory

написать команду drush cc

Это вернул бы вас с

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

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

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

Нитеш Сетия
источник
1
Он спрашивает о продвинутом, настраиваемом механизме кэширования
Codium
Вы можете сделать, drush cc viewsнапример, где представления могут быть любого типа в этом списке.
Измир Рамирес