Как очистить Drupal Cache (без Devel) - PullRequest
20 голосов
/ 05 августа 2009

Как очистить кеш Drupal:

  • без модуля Devel
  • без запуска некоторого оператора PHP в новом узле и т. Д.
  • не заходя в саму базу данных

По сути, как вы инструктируете конечного пользователя очищать свои кеши?

Ответы [ 12 ]

44 голосов
/ 05 августа 2009

Когда вы вошли в систему как администратор (очевидно, не каждый пользователь сайта должен иметь возможность очистить кэш) , должна быть страница в " Администрирование> Конфигурация сайта> Производительность ».

И внизу страницы должна быть кнопка (что-то вроде « Очистить кэшированные данные ») для очистки кэша

Насколько я помню, Devel не нуждается в этом, и вам действительно не нужно ни заходить в базу данных, ни запускать какой-то самодельный код PHP.


Для справки вы можете взглянуть на Как очистить Drupal серверный кеш

20 голосов
/ 05 августа 2009

Вы также можете использовать модуль Drush , который позволяет использовать командную строку для выполнения популярных команд Drupal, таких как «drush cron» или «drush cache clear clear».

7 голосов
/ 26 октября 2011

Если вы хотите очистить кэш от модуля, вы можете использовать следующий код.

drupal_flush_all_caches();
4 голосов
/ 16 августа 2009

У меня самое простое решение для этого. Установите модуль admin_menu (на самом деле не только для этой цели, после того, как вы установили этот модуль, вы не пожалеете об этом наверняка, ссылка: http://drupal.org/project/admin_menu). ОК, затем в появившемся верхнем выпадающем меню наведите курсор мыши на ваш значок и выпадающее появится, и вы увидите: Сбросить все кэши. Один клик - один сброс. Кроме того, вы можете сбросить все кэши вместе или выбрать, что стирать: Страницы, меню, темы и т. д. Попробуйте, и вы никогда не вернетесь)

3 голосов
/ 26 сентября 2009

Было бы здорово, если бы вы могли просто ПОЛУЧИТЬ поведение, нажав:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
но ты не можешь.
Тем не менее, я хочу отметить URL для быстрого доступа через меню администратора (используйте последнюю часть):
http://drupal.local. /admin/settings/performance

1 голос
/ 07 июня 2013

Код выше для Drupal 6.

Для Drupal 7 модуль flush-cache будет выглядеть следующим образом:

<?php 
/**
 * Implementation of hook_menu()
 */
function flush_cache_menu() {
  $items = array();

  $items['flush-cache'] = array(
  'type' => MENU_NORMAL_ITEM,
  'title' => t('Flush the cache'),
  'description' => 'Flush all website caches to make sure it updates to relect '.
    'your recent changes.',
  'page callback' => 'flush_cache_custom_callback',
  'access callback' => user_access('flush cache'),
  );

  return $items;
}

/**
 * Implementation of hook_permission()
 */
function flush_cache_permission() {
  return array(
    'administer my module' => array(
      'title' => t('flush cache module'),
      'description' => t('Content admin flush cache.'),
    ),
  );
}

/**
 * Function that flushes the cache
 */
function flush_cache_custom_callback() {
  drupal_flush_all_caches();
  return 'Caches were flushed.';
}

Примечание: чтобы затем очистить его, перейдите по адресу:

sitename.com / флеш-кэш

Убедитесь, что вы даете им разрешение на странице разрешений. Очистите кэш один раз «нормальным» способом, если разрешение не появляется после включения модуля.

Это предпочтительно, если вы не хотите, чтобы ваш клиент получал доступ к меню администратора, но вы все еще хотите, чтобы они могли очищать кеш.

1 голос
/ 19 сентября 2012

Я нашел следующее в: http://www.drupalgardens.com/content/clear-all-caches-not-working

Есть еще один слой кэширования вокруг сайта, который "очищает все кеши "не влияет, ты прав. Это тот слой, который хранит контент для анонимных пользователей.

Если вы хотите обойти кеш для тестирования, вы можете добавить Нежелательная строка запроса до конца пути вашего сайта. Например, если вы хотел обойти кеш на example.drupalgardens.com/foo вы могли бы посетите example.drupalgardens.com/foo?bar=baz или любой другой случайный текст настроить как? xxxxx = xxxxx.

Это помогло мне, потому что у меня были проблемы, когда очистка кэша в разделе «Конфигурация»> «Производительность» не помогала.

1 голос
/ 28 марта 2010

Очистка по требованию может быть выполнена в Администрирование> Конфигурация сайта> Производительность.

Вы должны настроить запуск задания cron каждый час (или любой другой интервал по своему вкусу).

Когда cron запущен на Drupal, все кэши очищаются и перестраиваются без необходимости делать это вручную.

Если этот вопрос относится к тематике, вам следует отключить механизмы кэширования (агрегация css / js), и вам не придется очищать данные кэша при внесении изменений.

0 голосов
/ 10 января 2016

используйте drush и эту команду: drush cc all

Если вы используете Boost для кэширования, вам нужно быть более конкретным:

drush @alias_name cc all
0 голосов
/ 11 декабря 2015

В Drupal 8 модуль меню администратора еще не готов к использованию. И это, вероятно, будет заменено на Drupal "Панель инструментов". Так что сейчас нет простого способа очистить кеш, не переходя к:

admin/config/development/performance

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

...