Очистить кэш без входа в систему


10

Я добавил оператор if вокруг php для рендеринга контента в моем файле page.tpl.php. Единственная проблема в том, что я допустил ошибку и случайно предотвратил отображение контента на любой странице. Я очистил кеш и вышел из системы, чтобы проверить его, и, поняв свою ошибку, исправил файл шаблона. Но теперь я не могу снова войти в систему, чтобы очистить кеш, так как мой сайт не будет отображать контент и, следовательно, не будет отображать окно входа.

Может ли кто-нибудь дать мне способ в Drupal 7 входить в систему без поля входа в систему (например, способ визуализации поля входа в систему отдельно от содержимого) или способ очистки кеша?


2
Если у вас есть доступ к базе данных, просто запустите TRUNCATE TABLE table_nameдля cacheтаблицы и всех других таблиц, начиная сcache_
Clive

2
Если у вас установлен drush, вы можете делать это drush ccиз терминала, стоя в корне друпала.
Циклон-код

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

Ответы:


12

я. Если у вас установлен Drush (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. Первоначально он не отображался в примере кода, поэтому я добавил пробел, чтобы он отображался сейчас.
Райан Шрама

2

Вы можете установить

$update_free_access = TRUE;

в файле settings.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 '; require_once DRUPAL_ROOT.' / includes / 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.