Чи можна вимкнути кеш для розгортання розробки?


22

На керуванні платформи розвитку може бути біль. Чи можу я його вимкнути? Чи вплине це на будь-який модуль, який цього вимагає?

Відповіді:


19

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

Якщо вам подобається командний рядок, встановіть " drush" і скористайтеся drush cc allкомандою, щоб очистити кеші ваших сайтів. Слідкуйте за тим, що в даний час друкований код не очищає кеш лаку, якщо це застосовно до вашої установки.


9

Якщо ви використовуєте Drupal 7, ви завжди можете встановити кешування на використання DrupalFakeCache, який, як правило, використовується лише під час встановлення. Щоб встановити це, киньте такий фрагмент коду у your settings.php:

include_once(DRUPAL_ROOT . '/includes/cache.inc');
include_once(DRUPAL_ROOT . '/includes/cache-install.inc');
$conf['cache_default_class'] = 'DrupalFakeCache';

4

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

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


4

Наскільки я знаю, немає жодних модулів, які вимагають кешування. Якщо ви не хочете його вимкнути, ви можете очистити його в Site Settings > Performanceрозділі.

Навіть із вимкненим кешуванням Drupal не розпізнає нові файли, додані до тем, поки ви не очистите кеш.

На Drupal.org є деяка інформація про різні способи очищення кешу


4

Окрім методів, про які говорив Стів Х , використання модуля Devel відкриває ще кілька варіантів, серед яких:

  • Перебудова кеша теми на кожному завантаженні сторінки (корисно, якщо ви працюєте над файлами шаблонів)
  • Блок, який забезпечить простий доступ до функції порожнього кешу та перевстановлення функції.

Якщо модуль Devel і кешування вимкнено в розділі Performance , єдиний інший головний кеш, який ви будете мати в рутинній розробці, - це маршрутизатор меню, який можна відновити за допомогою програми Devel або Admin Menu, як згадував Стів.


4

Важливо відзначити, що якщо у вас багато таблиць стилів (або з теми, або з модулів), вимкнення оптимізації файлів CSS має можливість зламати ваш сайт в IE.

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

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


Якщо ви турбуєтеся про IE ви можете використовувати drupal.org/project/ie_css_optimizer
realityloop

3

Якщо ви використовуєте Drupal 6, модуль " Відключення кешу " може бути зручним для цього завдання, якщо ви не хочете [з якоїсь причини] встановлювати більш важкі модулі, як Devel.


2

Старе питання, але я щойно бачив, як це спливе як пов'язане з пошуком, який я робив.

Майже всі методи очищення кешу в кінцевому підсумку викликають drupal_flush_all_caches врешті -решт. Ви можете пограти, зателефонувавши до цього за різних обставин у власному коді.


2

Кількість кеш-пам’ят, що використовуються з 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), якщо вище не буде працювати.

eAccelerator

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

APC

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

OPCache

Очистити PHP OPCache, якщо використовується з PHP> = 5.5

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

Примітка: Вище команда CLI не очистить кеш-пам'ять для Apache, відповідно до: Opcache - Очистіть кеш у PHP5.4 та пізніших версіях .

запам’ятовується

Якщо ви використовуєте 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.

Також у вашому файлі налаштувань рекомендується встановити модуль, що зберігається, із наступним рядком:

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

Таким чином кеш-пам'ять очищена від стандартного кеша Drupal clear.

Лак

Якщо ви використовуєте Varnish, радимо встановити модуль Varnish і встановити наступний рядок у вашому файлі налаштувань:

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

Таким чином кеш лаку буде видалено разом з очищення кеша Drupal.

Ви також можете використовувати curl для очищення сторінок вручну:

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

Детальніше: Як я можу очистити кеш лаку?

Друпал

Очистити кеші Drupal за допомогою друку:

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 / development / performance, оскільки іноді кеші UI очищаються кращим чином, ніж з CLI.


Ось корисний скрипт оболонки для очищення всіх кешів:

#!/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.

3
OPCache не працюватиме з CLI, наприклад , див експлікації на: stackoverflow.com/questions/17716639 / ...
Lars

0

ми можемо скористатися одним із наведених нижче способів очищення кешу в друпалі

1.) Ми можемо просто відвідати URL-адресу your_domain / admin / config / development / performance та натиснути кнопку очищення кеша.

2.) Якщо у нас встановлено модуль drush, ми можемо очистити кеш за допомогою цієї команди drush cc all .

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

Кеш TRUNCATE TABLE;

TRUNCATE TABLE cache_block;

TRUNCATE TABLE cache_bootstrap;

TRUNCATE TABLE cache_field;

TRUNCATE TABLE cache_filter;

TRUNCATE TABLE cache_form; // відзначте важливі відмінності від інших таблиць cache_ * - докладнішу інформацію див. нижче

TRUNCATE TABLE cache_image;

TRUNCATE TABLE cache_menu;

TRUNCATE TABLE cache_page;

TRUNCATE TABLE cache_path;

TRUNCATE TABLE cache_token;

TRUNCATE TABLE cache_update;

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

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

6.) Ми також можемо очистити кеш-пам'ять, встановивши модуль devel, встановити модуль розробки та включити "Розробник / Блок розвитку" цим способом. Ми можемо очистити кеш

Більше інформації про cache_form, який має інше призначення від інших таблиць cache_ :

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

  • інші ручні методи очищення кешів, описані в цій публікації, не вплинуть на cache_form

  • якщо вам потрібно зменшити розмір cache_form на виробничому сайті, див. розмір таблиці Cache Form величезний

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.