Очистить кеш

Прислано: VladSavitsky

вт, 12/08/2008 - 12: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($core, module_invoke_all('devel_caches')); foreach ($alltables as $table) { cache_clear_all('*', $table, true); } print(t('Cache cleared.')); ?>

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

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

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

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано beerman в вт, 12/08/2008 - 13:13.

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


Опубликовано neochief в вт, 12/08/2008 - 13:31.

Альтернативный метод для пятерки


Опубликовано andypost@drupal.org в вт, 12/08/2008 - 14:06.

"VladSavitsky" написал(а):

TRUNCATE `cache_table`;

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

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


Опубликовано Dr. Hardcore в вт, 12/08/2008 - 15:04.

а что вернее использовать? delete * from table `cache_table` так?


Опубликовано andypost@drupal.org в вт, 12/08/2008 - 15:44.

%) delete from table

оно очень медленное, лучше вносить изменения когда посетителей мало


Опубликовано Dr. Hardcore в вт, 12/08/2008 - 15:55.

ну это само собой, просто насколько знаю, truncate - чисто mysql инструкция, и в SQL'92 ее нет


Опубликовано anser в вт, 12/08/2008 - 21:52.

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


Опубликовано Химический Али в ср, 13/08/2008 - 07:20.

А зачем такой огромный анонс на главной?


Опубликовано digital_sword в ср, 13/08/2008 - 07:35.

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


Опубликовано VladSavitsky в ср, 13/08/2008 - 12:26.

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

"Химический Али" написал(а):

А зачем такой огромный анонс на главной?

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

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


Опубликовано VladSavitsky в ср, 13/08/2008 - 12:34.

"anser" написал(а):

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

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


Опубликовано axel в ср, 13/08/2008 - 14:16.

VladSavitsky написал(а):
"Химический Али" написал(а):

А зачем такой огромный анонс на главной?

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

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


Новое на сайте

Ссылки партнёров