Очистить кеш

12 Авг 2008
Опубликовано VladSavitsky

Решение

Стандартно кеш хранится в базе данных, если вы не применяли кеш в файлах.

Варианты

  • Очистка через Админ-часть сайта
  • Очистка кеша модуля Views
  • Очистка таблиц в базе данных
  • Очистка кеша прав доступа
  • Очистка кеша PHP-сниппетом
  • Очистка кеша с помощью модуля devel

Очистка через Админ-часть сайта

Drupal 6

  • Откройте страницу "Производительность" (admin/settings/performance)
  • Нажмите внизу кнопку "Clear cached data" ("Очистить все кешированные данные")

Drupal 5

Если модуль Aggregate JavaScript установлен, то очистить кеш JS и CSS можно открыв в браузере адрес: http://example.com/clearjscache

Очистка кеша модуля Views

  • Откройте страницу "Инструменты" ("Tools") модуля Views (admin/build/views/tools)
  • Нажмите кнопку "Очистить кеш Видов" (Друпал 5)

Очистка таблиц в базе данных

Лучше вносить изменения, когда посетителей мало или перевести сайт в режим "Обслуживание".

Очистка таблиц оператором TRUNCATE

Выполнить SQL-запрос:

TRUNCATE `cache_table_name`;

где 'cache_table_name' нужно заменить названием соответствующей таблицей кеша

andypost@drupal.org:
Обратите внимание:
На посещаемом сайте это может привести к непредсказуемому поведению кода и посетители могут не дождаться ответа от сайта либо получить сообщение об ошибке, ибо это операция фактически пересоздает таблицы.

Очистка таблиц оператором DELETE

Оператор выполняется оень медленно.

DELETE FROM TABLE `cache_table_name`;

Таблицы кеша Drupal 6

  • cache
  • cache_block - кеш блоков
  • cache_content - кеш нод
  • cache_filter - кеш форматов ввода
  • cache_form -кеш форм
  • cache_menu - кеш меню
  • cache_page - кеш страниц
  • cache_update - кеш обновлений модулей (модуль update status)

Таблицы кеша Drupal 5

  • cache
  • cache_advcache_block -кеш модуля advcache_block
  • cache_block - кеш блоков
  • cache_comment -кеш комментариев
  • cache_content - кеш контента
  • cache_filter -кеш фильтров ввода
  • cache_forum -кеш модуля Forum
  • cache_menu - кеш меню
  • cache_node - кеш нод
  • cache_page - кеш страниц
  • cache_path - кеш синонимов URL
  • cache_search - кеш поиска
  • cache_taxonomy - кеш таксономии
  • cache_views -кеш модуля Views
  • cache_workflow_ng -кеш модуля

Очистка кеша прав доступа

Открыть в браузере страницу: admin/content/node-settings/rebuild (Drupal 6)

Очистка кеша PHP-сниппетом

  • Создать страницу
  • Формат ввода установить PHP
  • Страница должна быть не опубликована, чтобы она не выполнялась:
    • при обращении к ноде во время поиска,
    • работе cron при составлении поисковой базы,
    • выборке этой ноды во вьюес,
    • выводе тизера
  • Страница должна быть доступна только админу
  • В текст страницы вставить код:
    <?php
    drupal_clear_css_cache();
     
    $core = array('cache', 'cache_content', 'cache_filter', 'cache_menu', 'cache_page', 'cache_views');
    $alltables = array_merge($core, module_invoke_all('devel_caches'));
    foreach ($alltables as $table) {
      cache_clear_all('*', $table, true);
    }
    print(t('Cache cleared.'));
    ?>

Очистка кеша с помощью модуля devel

Полезные рецепты по этой теме

Использованные материалы

]]>]]>

Комментарии

а для чего нужно очищать кеш ? в каких случаях ?

Олег | Сен 28th, 2009 в 10:47 утра

На рабочем сайте это как правило не нужно. Кроме того, при запуске крона эти таблицы периодически очищаются.
А вот во время разработки это приходится делать часто, потому что иногда неверный код может сделать сайт недоступным, если он закешировался - тогда очистка кеша и устранение неверного кода вернёт сайт к жизни.
Перед тем, как сделать дамп базы данных стоит очистить таблицы кеша - дамп будет меньше. Может быть есть и другие случаи, но не пришло на память.

VladSavitsky | Сен 28th, 2009 в 3:06 после полудня

На рабочем сайте это как правило не нужно. Кроме того, при запуске крона эти таблицы периодически очищаются.
А вот во время разработки это приходится делать часто, потому что иногда неверный код может сделать сайт недоступным, если он закешировался - тогда очистка кеша и устранение неверного кода вернёт сайт к жизни.
Перед тем, как сделать дамп базы данных стоит очистить таблицы кеша - дамп будет меньше. Может быть есть и другие случаи, но не пришло на память.

VladSavitsky | Сен 28th, 2009 в 3:11 после полудня
 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>