Pregunta

¿Cómo vacío las cachés de Drupal?

  • sin el módulo Devel
  • sin ejecutar alguna instrucción PHP en un nuevo nodo, etc.
  • sin entrar en la base de datos en sí

Efectivamente, ¿cómo se le indica a un usuario final que limpie sus cachés?

¿Fue útil?

Solución

Cuando inicie sesión como administrador (obviamente, no todos los usuarios del sitio tienen que poder borrar el caché) , debe haber una página en " Administrar > Configuración del sitio & Gt; Rendimiento & Quot ;.

Y, en la parte inferior de la página, debe haber un botón (algo como " Borrar datos en caché ") para borrar el caché

Por lo que recuerdo, no hay necesidad de que Devel haga eso, y realmente no necesitas ir a la base de datos, ni ejecutar algún código PHP casero.


Como referencia, puede echar un vistazo a Cómo borrar el caché del lado del servidor Drupal

Otros consejos

También puede usar el módulo Drush , que le permite usar la línea de comando para ejecutar Drupal popular comandos, como " drush cron " o " drush cache clear " ;.

Si desea borrar el caché de un módulo, puede usar el siguiente código.

drupal_flush_all_caches();

Tengo la solución más fácil para eso. Instale el módulo admin_menu (en realidad no solo para este propósito, una vez que haya instalado este módulo, no lo lamentará con seguridad, enlace: http://drupal.org/project/admin_menu ). Ok, luego, en un menú desplegable superior recién aparecido, desplace su favicon y aparecerá el menú desplegable, y verá: Vaciar el menú de todas las cachés. Un clic, una descarga. Además, puede vaciar todas las memorias caché juntas o seleccionar qué vaciar: páginas, menú, temas, etc. Intente y nunca volverá)

Sería increíble si pudieras OBTENER el comportamiento presionando:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
pero no puedes.
Sin embargo, quiero anotar la URL para el acceso directo a través del menú de administración (use la última parte):
http://drupal.local. /admin/settings/performance

El borrado bajo demanda se puede hacer en Administrar > Configuración del sitio & Gt; Rendimiento.

Debe configurar el trabajo cron para que se ejecute cada hora (o el intervalo que desee).

Cuando cron se ejecuta en Drupal, todos los cachés se borran y se reconstruyen sin la necesidad de que un humano lo haga manualmente.

Si esta pregunta se refiere al tema, debe deshabilitar los mecanismos de almacenamiento en caché (agregación css / js) y no tendrá que borrar los datos de caché cuando realice cambios.

Encontré lo siguiente en: http: //www.drupalgardens. com / content / clear-all-caches-not-working

  

Hay otra capa de almacenamiento en caché alrededor del sitio que " borrar todo   cachés " no afecta, tienes razón. Esa es la capa que almacena   el contenido para usuarios anónimos.

     

Si desea omitir el caché con fines de prueba, puede agregar un   cadena de consulta basura al final de la ruta del sitio. Por ejemplo, si tu   quería omitir el caché en example.drupalgardens.com/foo que pudiste   visite example.drupalgardens.com/foo?bar=baz o cualquier otro texto aleatorio   configurar como? xxxxx = xxxxx.

Esto me ayudó, porque he tenido problemas al borrar el caché en Configuración > El rendimiento no pareció ayudar.

El código anterior es para Drupal 6.

Para Drupal 7, el módulo flush-cache sería el siguiente:

<?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.';
}

Nota: que luego lo enjuagas yendo a:

sitename.com/flush-cache

Asegúrese de darles permiso en la página de permisos. Borrar caché una vez que & "; Normal &"; si el permiso no aparece después de encender el módulo.

Esto es preferible cuando no desea que su cliente tenga acceso al menú de administración, pero aún así desea que puedan vaciar el caché.

AQUÍ VAYAS:

Tuve que desinstalar el " devel " módulo (era incompatible con los Elementos de menú especiales, que necesitaba peor), así que hice el mío.

En cualquier lugar donde vea MODULENAME reemplácelo con el nombre de su módulo.

PASO 1: Agregue a cualquier módulo (preferiblemente uno de sus módulos personalizados) en el HOOK_MENU, antes de & Quot; return $ items & Quot; línea:

// short cut for flushing the caches:
$items['flush-cache'] = array(
  'type' => MENU_CALLBACK,
  'title' => t('Flush the cache'),
  'description' => 'MODULENAME Custom Cache Flush',
  'page callback' => 'MODULENAME_flush_cache',
  'access callback' => TRUE,
);

PASO 2: Ahora, en el mismo archivo de módulo, donde no está & Quot; dentro de & Quot; cualquier otra función, agregue:

/**  Page callback  **/
function MODULENAME_flush_cache() {
  drupal_flush_all_caches();
  return 'Caches were flushed.';
}

Ahora, puede ir a la URL " / flush-cache " en su sitio para vaciar el caché. (Después de vaciar el caché por última vez a la antigua).

PASO 3: Si lo desea REALMENTE conveniente, agregue lo siguiente a su archivo page.tpl.php. Puedes ponerlo prácticamente en cualquier lugar entre & Lt; body & Gt; y < / body > ;. NOTA: $ my_is_test es una variable que uso que es VERDADERA en mi sistema de prueba y FALSA en producción. Si no tiene algo así, reemplácelo con VERDADERO o FALSO para activarlo o desactivarlo:

<?php if ($my_is_test): ?>
<a style="text-align:left; position:absolute; right:2px; top:20px;" href="<?=$base_path?>flush-cache" onclick="this.innerHTML = '<b><blink><big>Wait...</big></blink></b>';">flush</a>
<? endif; ?>

¡Y listo! Tiene & Quot; rubor & Quot; enlace en la esquina superior derecha de cada página en la que puede hacer clic. Siéntase libre de cambiar la & Quot; derecha & Quot; y " top " cantidades (o cambie & "; derecha &"; a & "; izquierda &"; o & "; arriba &"; a & "; abajo &" ; para ponerlo donde quieras. Este posicionamiento de enlace solo funciona en los navegadores modernos, pero es solo para ti, por lo que no debería ser un problema, ¿verdad?

El siguiente módulo crea un elemento de menú al que solo pueden acceder los usuarios con el permiso " flush cache " ;, que este módulo pone a disposición en la página de permisos de usuario normal.

/**
 * 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_perm()
 */
function flush_cache_perm() {
  return array('flush cache');
}

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

En Drupal 8, el módulo del menú de administración aún no está listo para su uso. Y probablemente será reemplazado con Drupal & Quot; Toolbar & Quot ;. Así que en este momento no hay una manera fácil de borrar el caché, sin realmente ir a:

admin/config/development/performance

La única alternativa es agregar un elemento de menú en la barra de herramientas existente. Esto se puede hacer usando este módulo , pero como puede ver, Todavía necesita un poco de trabajo. Lo hice funcionar, pero tuve que hacer algunos ajustes.

use drush y este comando: drush cc all

Si está utilizando Boost para almacenar en caché, debe ser más específico:

drush @alias_name cc all
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top