Могу ли я отключить кэш для развертывания разработки?


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

 23
Author: kiamlaluno, 2011-03-02

10 answers

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

Если вам нравится командная строка, установите drush и используйте команду drush cc all для очистки кэшей ваших сайтов. Имейте в виду, что в настоящее время drush cc не очищает кэш лака, если это применимо к вашему настройка.

 20
Author: budda, 2012-01-03 23:03:19

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

include_once(DRUPAL_ROOT . '/includes/cache.inc');
include_once(DRUPAL_ROOT . '/includes/cache-install.inc');
$conf['cache_default_class'] = 'DrupalFakeCache';
 9
Author: Mikey P, 2011-03-03 03:32:47

Страница "Производительность" в разделе администрирование > конфигурация сайта позволит вам включить/отключить кэширование выбранных элементов сайта. Шаблоны тем, как правило, кэшируются более настойчиво, но могут быть сброшены на той же странице "производительность".

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

 4
Author: Storsey, 2011-03-02 22:35:31

Насколько я знаю, нет никаких модулей, которые требуют кэширования. Если вы не хотите его отключать, вы можете очистить его в разделе Site Settings > Performance.

Даже при отключенном кэшировании Drupal не распознает новые файлы, добавленные в темы, пока вы не очистите кэш.

Есть некоторая информация о различных способах очистки кэша по адресу Drupal.org

 4
Author: Paul Jones, 2011-03-02 22:36:38

В дополнение к методам , упомянутым Стивом Х., использование модуля Devel открывает еще несколько возможностей, в том числе:

  • Восстановление кэша тем при каждой загрузке страницы (полезно, если вы тематик, работающий с файлами шаблонов)
  • Блок, который обеспечит легкий доступ к функции пустого кэша и переустановит функцию.

С отключенным модулем разработки и кэшированием в разделе Производительность, единственный другой крупный кэш, с которым вы столкнетесь в обычная разработка - это маршрутизатор меню, который можно перестроить с помощью меню Devel или Admin, как упоминал Стив.

 4
Author: Community, 2017-04-13 12:47:06

Важно отметить, что если у вас много таблиц стилей (либо из вашей темы, либо из модулей), то отключение оптимизации файлов CSS может привести к сбою вашего сайта в IE.

Хотя на самом деле это не кэширование, оно находится на той же странице настроек и часто используется с кэшированием.

Ссылка "Очистить все кеши" в модуле меню администратора, кстати, фантастическая.

 4
Author: epersonae, 2011-03-02 23:04:42

Если вы используете Drupal 6, модуль " Отключение кэша" может быть полезен для этой задачи, если вы не хотите [по какой-либо причине] устанавливать более тяжелые модули, такие как Devel.

 3
Author: wildpeaks, 2011-03-02 23:31:49

Старый вопрос, но я только что увидел, что он появился как связанный с поиском, который я выполнял.

Почти все методы очистки кэша в конечном итоге вызывают drupal_flush_all_caches в конце концов. Вы можете поиграть с вызовом этого в различных обстоятельствах в своем собственном коде.

 2
Author: mpdonadio, 2011-06-07 17:44:45

Количество кэшей, используемых с Drupal, иногда может сойти с ума.

Вот общие методы отключения и очистки кэшей Drupal и связанные с ними.


ОТКЛЮЧЕНИЕ КЭШЕЙ:

Обратите внимание, что вы не можете отключить все кэши, так как некоторые из них требуются Drupal.

Вот способ отключения кэшей путем добавления следующих строк в файл настроек:

// Disable caches
$conf['cache'] = 0;
$conf['block_cache'] = 0;
$conf['views_skip_cache'] = TRUE;
$conf['page_compression'] = 0;
$conf['preprocess_css'] = 0;
$conf['preprocess_js'] = 0;

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


ОЧИСТКА ТАЙНИКОВ

XCache -кэш

Очистить кэш XCache, если он используется:

drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();"

Или очистите кэш в XCache в панели администратора (/xcache-admin), если выше не будет работать.

Ускоритель

drush eval "function_exists('accelerator_reset') && accelerator_reset();"

БТР

drush eval "function_exists('apc_clear_cache') && apc_clear_cache();"

Кэш-память

Очистить кэш операций PHP при использовании с PHP >=5.5

drush eval "function_exists('opcache_reset') && opcache_reset();"

Примечание: Приведенная выше команда командной строки не очистит кэш для Apache, согласно: Кэш Opcache - Очистка кэша в PHP5.4 и ниже.

Сохраненный в памяти

Если вы используете memcached, вам следует очистить, перезапустить или отключить memcached одним из следующих способов:

Как пользователь (один из них):

echo flush_all > /dev/tcp/127.0.0.1/11211
echo flush_all | nc localhost 11211 # Flush Contents Of a Memcached Server

Как корень (один из них):

/etc/init.d/rc.d/memcached restart
service memcached restart
killall memcached # It's automatically restarted on OSX.

Также рекомендуется установить модуль memcached со следующей строкой в настройках файл:

$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc';

Таким образом, кэш с памятью очищается в стандартном кеше Drupal clear.

Лак

Если вы используете лак, рекомендуется установить модуль Лак и установить следующую строку в файле настроек:

$conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc';

Таким образом, кэш лаков будет очищен вместе в кеше Drupal clear.

В качестве альтернативы вы можете использовать curl для очистки страниц вручную:

curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123

Подробнее: Как я могу очистить лак кэш?

Друпал

Очистить кэш Drupal с помощью drush:

drush cc all
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
drush eval 'menu_rebuild();'

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


Вот полезный сценарий оболочки для очистки всех кэшей:

#!/bin/bash
set -o xtrace
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
echo 'flush_all' | nc localhost 11211 # Flush Contents Of a Memcached Server
drush eval "function_exists('opcache_reset') && opcache_reset(); function_exists('xcache_clear_cache') && xcache_clear_cache();"
drush eval 'menu_rebuild();'
set -o xtrace -
echo done.
 2
Author: kenorb, 2017-05-23 12:41:25

Мы можем использовать один из следующих методов для очистки кэша в drupal

1.) Мы можем просто посетить URL-адрес your_domain/admin/config/разработка/производительность и нажать кнопку очистить кэш.

2.) Если у нас есть модуль установки drush, мы можем очистить кэш с помощью этой команды drush cc all.

3.) Если у нас есть доступ к базе данных, мы можем очистить кэш с помощью следующих команд (прямой доступ к производственной базе данных категорически не рекомендуется; используйте одну из альтернатив вместо этого, если ваш сайт "живой")

УСЕЧЬ кэш ТАБЛИЦЫ;

УСЕЧЬ кэш-блок ТАБЛИЦЫ;

УСЕЧЬ ТАБЛИЦУ cache_bootstrap;

УСЕЧЬ поле кэша_ ТАБЛИЦЫ;

УСЕЧЬ cache_filter ТАБЛИЦЫ;

УСЕЧЬ ТАБЛИЦУ cache_form;//обратите внимание на важные отличия от других таблиц cache_* - смотрите Дополнительную информацию ниже

УСЕЧЬ ТАБЛИЦУ cache_image;

УСЕЧЬ ТАБЛИЦУ cache_menu;

УСЕЧЬ СТРАНИЦУ КЭША ТАБЛИЦЫ;

УСЕЧЬ ТАБЛИЦУ путь к кэшу_;

УСЕЧЬ ТАБЛИЦУ cache_token;

УСЕЧЬ ТАБЛИЦУ cache_update;

4.) Мы также можем написать запрос в нашем файле модуля db_query ("УДАЛИТЬ ИЗ {кэша};");

5.) Мы можем использовать api drupal для очистки кэша , например cache_clear_all()

6.) Мы также можем очистить кэш с помощью модуля разработки установить модуль разработки и включить "Блок разработчика/разработки". Таким образом, мы можем очистить кэш

Дополнительная информация о cache_form, которая имеет другое назначение, чем другие кэш_ таблицы:

  • Основные документы api для drupal_flush_all_caches() говорят: "Не очищайте cache_form - в процессе отправки формы может произойти сбой". Это относится только к сайтам с активными пользователями, а не к версиям разработки.

  • Другие ручные методы очистки кэшей, описанные в этом посте, не повлияют на форму cache_form

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

 0
Author: SynapseIndia, 2018-04-26 16:14:07