Задача
Очистить кеш нужно с таких случаях:
- Обновление JS и CSS файлов
- Обновление файла template.php темы
- Изменение контента сайта не видно для анонимов
- Проблемы с правами доступа - нужно очистить кеш прав доступа
- Страницы выводимые модулем Views не отображают изменений в настройках
Решение
Авторы, предложившие решения: andypost@drupal.org, Dr. Hardcore, neochief,
Стандартно кеш хранится в базе данных, если вы не применяли кеш в файлах.
Варианты
- Очистка через Админ-часть сайта
- Очистка кеша модуля Views
- Очистка таблиц в базе данных
- Очистка кеша прав доступа
- Очистка кеша PHP-сниппетом
- Очистка кеша с помощью модуля devel
Очистка через Админ-часть сайта
Drupal 6
- Откройте страницу "Производительность" (admin/settings/performance)
- Нажмите внизу кнопку "Clear all cache data" ("Очистить все кешированные данные")
Drupal 5
Если модуль Aggregate JavaScript установлен, то очистить кеш JS и CSS можно открыв в браузере адрес: http://example.com/clearjscache
Очистка кеша модуля Views
- Откройте страницу "Инструменты" ("Tools") модуля Views (admin/build/views/tools)
- Нажмите кнопку "Очистить кеш Видов" (Друпал 5)
Очистка таблиц в базе данных
Лучше вносить изменения, когда посетителей мало или перевести сайт в режим "Обслуживание".
Очистка таблиц оператором TRUNCATE
где 'cache_table_name' нужно заменить названием соответствующей таблицей кеша
andypost@drupal.org:
Обратите внимание:
На посещаемом сайте это может привести к непредсказуемому поведению кода и посетители могут не дождаться ответа от сайта либо получить сообщение об ошибке, ибо это операция фактически пересоздает таблицы.
Очистка таблиц оператором DELETE
Оператор выполняется оень медленно.
Таблицы кеша 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
- Установите модуль
- Включите блок модуля
- В этом блоке будет ссылка для очистки кеша.
Использованные материалы
- Простой метод очистки кеша
- http://drupal.ru/node/18076 - комментарии
Комментарии
все вышесказанное есть происки империалистов.
только крон по событию спасет отцов русской друпал-коммюнити.
Альтернативный метод для пятерки
Влад TRUNCATE TABLE `cache_table_name`- поправь, если mysql позволяет опускать тип объекта - это не повод в статье не писать в формате ansi-sql!
Еще стоит заметить, что на посещаемом сайте это может привести к непредсказуемому поведению кода и посетители могут не дождаться ответа от сайта либо получить сообщение об ошибке, ибо это операция фактически пересоздает таблицы.
а что вернее использовать?
delete * from table `cache_table`
так?оно очень медленное, лучше вносить изменения когда посетителей мало
ну это само собой, просто насколько знаю, truncate - чисто mysql инструкция, и в SQL'92 ее нет
По законам жанра надо было написать список кар, которые ждут пользователей, не очистивших кэш. Ведь если ничего страшного не будет, то зачем очищать кэш?![Wink](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/wink.gif)
А зачем такой огромный анонс на главной?
Вопрос не по очистке, а наоборот по созданию: минимальное время жизни кэша какой выставлять (на сайте с посещаемостью 1посетитель/секунда, 1/минута, 1/час, 1/день?
Внёс исправления в статью. Спасибо за советы.
То, что статья на главной - я думал, что это фишка нового дизайна: типа все новые статьи на главную выводить.
В типе материала указано было по умолчанию публиковать на главной...
Лично я не считаю, что это статья для главной страницы. Если это не общесистемная настройка, то статью нужно убрать с главной.
Да так, мне веник понравился, вот и ткнул вынос на главную![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
Если ситуация, когда нужно очистить кеш не возникает, то и кеш чистить лишний раз не нужно. А вообще, к чистке кеша приводят проблемы с сайтом. Я в разделе "Задача" попытался описать известные мне случаи, когда очистка кеша может помочь.
круо спс