Очистити кеш без входу


10

Я додав вислів if у вмісті відображає php у файлі page.tpl.php. Єдина проблема полягає в тому, що я допустив помилку і випадково не допустив її до вмісту на будь-якій сторінці. Я очистив кеш і вийшов, щоб перевірити його, і зрозумівши свою помилку, я виправив файл шаблону. Але тепер я не можу знову увійти, щоб очистити кеш знову, оскільки мій сайт не буде відображати вміст і, отже, не відображатиметься поле входу.

Чи може хтось дати мені спосіб в Drupal 7 здійснити вхід без вікна входу (наприклад, спосіб відобразити поле входу окремо до вмісту) або спосіб очищення кешу?


2
Якщо у вас є доступ до бази даних просто запустити TRUNCATE TABLE table_nameдля cacheтаблиці і всі інші таблиці , починаючи зcache_
Clive

2
Якщо у вас встановлено барабан, ви можете це зробити drush ccз терміналу, стоячи в корінці drupal.
Cyclonecode

На вашій сторінці tpl просто запустіть drupal_flush_all_caches ();
Аніл Сагар

Відповіді:


12

i. Якщо у вас встановлено барабан (http://drupal.org/project/drush) - якщо у вас його немає, подумайте про це наступного разу :), відкрийте консоль (WIN + R) у Windows або Ctrl + Alt + T у Linux вказує на папку вашого сайту (наприклад, cd /www/mydrupalsite/і введіть:

 $ drush cc all

з командного рядка.

ii. Інший метод - це увійти у ваш phpmyadmin, вибрати таблицю cache_ та очистити / очистити їх.


6

Найкраще рішення, яке я знайшов врешті - це зробити це через phpmyadmin. Я ввійшов у систему та очистив усі таблиці, які мали "кеш" на початку їх імені. Легко, якщо ви не працюєте в барабані.


Повторюючи відповідь drupal_stuff_alter частково без будь - яких додаткової інформації , навряд чи корисно, і на мій погляд дуже зневажливо концепції цього сайту. Я навіть не можу почати припускати, чому ви хочете зірвати людей, які знайшли це питання в майбутньому, опублікувавши та прийнявши відповідь, яка омикає drushметод, який вимагає явно менше часу та зусиль, а на додаток до цього - намічений шлях.
TheThirdMan

5

Окрім згаданих вище параметрів, як останнє зусилля канави можна було викликати функцію drupal_flush_all_caches(), щоб очистити всі кеші.

Це можна зробити, розмістивши код нижче у файлі php у корені документа та відвідавши його у веб-переглядачі:

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_flush_all_caches();

Я не перевіряв цей код і обов'язково видаліть його після очищення кеш-пам'яті.


Зауважте, що вам потрібно спочатку визначити константу DRUPAL_ROOT. Спочатку він не відображався в прикладі коду, тому я додав пробіл, щоб він відображався зараз.
Ryan Szrama

2

Ви можете встановити

$update_free_access = TRUE;

в налаштуваннях.php (навколо рядка 226) та перейдіть до /update.php. Це очистить кеш-пам'ять.


0

Ви можете очистити кеш Drupal, виконавши таку команду або в командній консолі Windows, або з файлу .bat (або з консолі Linux):

php -r "define ('DRUPAL_ROOT', '../web'); chdir (DRUPAL_ROOT); define ('MAINTENANCE_MODE', 'update'); global $ _SERVER; $ _SERVER ['REMOTE_ADDR'] = '127.0.0.1 '; need_once DRUPAL_ROOT.' / включає / bootstrap.inc '; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL); drupal_flush_all_caches (); "

Просто переконайтеся, що DRUPAL_ROOT у коді вказує на каталог Drupal.


0
delete from cache where cid <> '';
delete from cache_block where cid <> '';
delete from cache_bootstrap where cid <> '';
delete from cache_field where cid <> '';
delete from cache_filter where cid <> '';
delete from cache_path where cid <> '';
delete from cache_libraries where cid <> '';
delete from cache_image where cid <> '';
delete from cache_page where cid <> '';
delete from cache_token where cid <> '';
delete from cache_update where cid <> '';
delete from cache_views where cid <> '';
delete from cache_views_data where cid <> '';
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.