Очистить кеш

Главные вкладки

Аватар пользователя VladSavitsky VladSavitsky 12 августа 2008 в 16:09

Задача

Очистить кешОчистить кеш нужно с таких случаях:

  • Обновление 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

Выполнить 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($coremodule_invoke_all('devel_caches'));
    foreach (
    $alltables as $table) {
      
    cache_clear_all('*'$tabletrue);
    }
    print(
    t('Cache cleared.'));
    ?>

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

  • Установите модуль
  • Включите блок модуля
  • В этом блоке будет ссылка для очистки кеша.

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

Комментарии

Аватар пользователя beerman beerman 12 августа 2008 в 17:13

все вышесказанное есть происки империалистов.
только крон по событию спасет отцов русской друпал-коммюнити.

Аватар пользователя andypost@drupal.org andypost@drupal.org 12 августа 2008 в 18:06

"VladSavitsky" wrote:
TRUNCATE `cache_table`;

Влад TRUNCATE TABLE `cache_table_name`- поправь, если mysql позволяет опускать тип объекта - это не повод в статье не писать в формате ansi-sql!

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

Аватар пользователя anser anser 13 августа 2008 в 1:52

По законам жанра надо было написать список кар, которые ждут пользователей, не очистивших кэш. Ведь если ничего страшного не будет, то зачем очищать кэш? Wink

Аватар пользователя digital_sword digital_sword 13 августа 2008 в 11:35

Вопрос не по очистке, а наоборот по созданию: минимальное время жизни кэша какой выставлять (на сайте с посещаемостью 1посетитель/секунда, 1/минута, 1/час, 1/день?

Аватар пользователя VladSavitsky VladSavitsky 13 августа 2008 в 16:26

Внёс исправления в статью. Спасибо за советы.

"Химический Али" wrote:
А зачем такой огромный анонс на главной?

То, что статья на главной - я думал, что это фишка нового дизайна: типа все новые статьи на главную выводить.
В типе материала указано было по умолчанию публиковать на главной...

Лично я не считаю, что это статья для главной страницы. Если это не общесистемная настройка, то статью нужно убрать с главной.

Аватар пользователя axel axel 13 августа 2008 в 18:16

VladSavitsky wrote:

"Химический Али" wrote:
А зачем такой огромный анонс на главной?

Лично я не считаю, что это статья для главной страницы. Если это не общесистемная настройка, то статью нужно убрать с главной.

Да так, мне веник понравился, вот и ткнул вынос на главную Smile

Аватар пользователя VladSavitsky VladSavitsky 13 августа 2008 в 16:34

"anser" wrote:
По законам жанра надо было написать список кар, которые ждут пользователей, не очистивших кэш. Ведь если ничего страшного не будет, то зачем очищать кэш? ;)

Если ситуация, когда нужно очистить кеш не возникает, то и кеш чистить лишний раз не нужно. А вообще, к чистке кеша приводят проблемы с сайтом. Я в разделе "Задача" попытался описать известные мне случаи, когда очистка кеша может помочь.