Vraag Hoe leeg ik Drupal Cache (zonder Devel)


Hoe leeg ik de Drupal caches:

  • zonder de Devel-module
  • zonder enige PHP-verklaring in een nieuw knooppunt etc. uit te voeren
  • zonder in de database zelf te gaan

Hoe geef je een eindgebruiker de opdracht om zijn caches te wissen?


19
2017-08-04 22:38


oorsprong


antwoorden:


Wanneer u bent aangemeld als een beheerder (uiteraard moet niet elke gebruiker van de site de cache leegmaken), er moet een pagina in staan ​​"Beheer> Site-configuratie> Prestaties".

En onderaan de pagina moet een knop staan ​​(zoiets als "Gegevens in de cache wissen") om de cache te wissen

Voor zover ik me herinner, is het voor Devel niet nodig om dat te doen, en je hoeft echt niet naar de database te gaan, noch een zelfgemaakte PHP-code te draaien.


Als referentie kunt u een kijkje nemen Drupal Server-side cache wissen


43
2017-08-04 22:49



U kunt ook de drush module, waarmee u de opdrachtregel kunt gebruiken om populaire Drupal-opdrachten uit te voeren, zoals "drush cron" of "drush cache clear".


20
2017-08-05 08:28



Als u de cache uit een module wilt wissen, kunt u de volgende code gebruiken.

drupal_flush_all_caches();

7
2017-10-26 15:40



Daar heb ik de gemakkelijkste oplossing voor. Installeer admin_menu module (eigenlijk niet alleen voor dit doel, als je eenmaal deze module hebt geïnstalleerd, zul je geen spijt hebben, link: http://drupal.org/project/admin_menu). Ok, dan in een nieuw verschenen bovenste vervolgkeuzemenu zweef je favicon en vervolgkeuzemenu verschijnt, en je zult zien: Spoel alle caches menu. Eén klik - één flush. Bovendien kunt u alle caches door elkaar spoelen of selecteren wat u wilt doorspoelen: pagina's, menu's, thema's, enz. Probeer het en u zult nooit meer teruggaan)


4
2017-08-16 08:47



Het zou geweldig zijn als je het gedrag gewoon kunt KRIJGEN door op:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
maar dat kan niet.
Ik wil echter wel de URL noteren voor het kort knippen in het admin-menu (gebruik het laatste deel):
http://drupal.local. /admin/settings/performance


3
2017-09-25 21:18



On-demand clearing kan worden gedaan in Beheer> Site-configuratie> Prestaties.

U moet de cron-taak instellen om elk uur (of een willekeurig interval naar wens) uit te voeren.

Wanneer cron op Drupal wordt uitgevoerd, worden alle caches gewist en opnieuw opgebouwd zonder dat een mens dit handmatig hoeft te doen.

Als deze vraag betrekking heeft op thema's, moet u de caching-mechanismen uitschakelen (css / js-aggregatie) en hoeft u de cachegegevens niet te wissen wanneer u wijzigingen aanbrengt.


1
2018-03-28 17:57



Ik vond het volgende op: http://www.drupalgardens.com/content/clear-all-caches-not-working

Er is nog een laag caching rond de site die "alles opruimt"   caches "heeft geen invloed op, je hebt gelijk. Dat is de laag die slaat   de inhoud voor anonieme gebruikers.

Als u de cache voor testdoeleinden wilt omzeilen, kunt u een   ongewenste zoekstring naar het einde van uw sitepad. Bijvoorbeeld als u   wilde de cache omzeilen op example.drupalgardens.com/foo   bezoek example.drupalgardens.com/foo?bar=baz of een andere willekeurige tekst   instellen als? xxxxx = xxxxx.

Dit heeft me geholpen, omdat ik problemen had met het opschonen van de cache onder Configuratie> Prestaties leek niet te helpen.


1
2017-09-19 06:35



De bovenstaande code is voor Drupal 6.

Voor Drupal 7 zou de flush-cache-module als volgt zijn:

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

Opmerking: dat u het vervolgens doorspoelt door naar:

sitename.com/flush-cache

Zorg ervoor dat je ze toestemming geeft op de toestemmingspagina. Wis de cache eenmaal op de "normale" manier als de toestemming niet verschijnt nadat de module is ingeschakeld.

Dit heeft de voorkeur wanneer u niet wilt dat uw cliënt toegang krijgt tot het beheerdersmenu, maar u toch wilt dat ze de cache kunnen doorspoelen.


1
2018-06-07 16:02



ALSJEBLIEFT:

Ik moest de "devel" -module de-installeren (het was niet compatibel met speciale menu-items, die ik nog erger nodig had), dus heb ik mijn eigen gemaakt.

Overal waar je MODULENAME ziet vervang het door de naam van je module.

STAP 1: Voeg toe aan elke module (bij voorkeur een van je aangepaste modules) in HOOK_MENU, vóór de regel "return $ items":

// 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,
);

STAP 2: Nu, voeg in hetzelfde modulebestand, waar het niet "binnen" is, een andere functie toe:

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

Nu kunt u gewoon naar de URL "/ flush-cache" op uw site gaan om de cache te spoelen. (Nadat u de cache een laatste keer op de oude manier hebt leeggemaakt.)

STAP 3: Als je het ECHT handig wilt, voeg dan het volgende toe aan je page.tpl.php bestand. Je kunt het vrijwel overal tussen <body> en </ body> plaatsen. OPMERKING: $ my_is_test is een variabele die ik gebruik die TRUE is in mijn testsysteem en FALSE in productie. Als je zoiets niet hebt, vervang je het door TRUE of FALSE om het in of uit te schakelen:

<?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; ?>

En voila! Je hebt een "flush" -link in de rechterbovenhoek van elke pagina waarop je kunt klikken. U kunt de "right" - en "top" -bedragen wijzigen (of "right" wijzigen in "left" of "top" in "bottom" om het waar u maar wilt te plaatsen.) Deze linkpositionering werkt alleen in moderne browsers, maar het is alleen voor jou, dus het zou geen probleem moeten zijn, toch?


0
2017-08-26 16:24



De volgende module maakt een menu-item dat alleen toegankelijk is voor gebruikers met de machtiging "flush cache", die deze module beschikbaar maakt op de pagina met gewone gebruikersrechten.

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

0
2017-08-24 22:24



In Drupal 8 is de admin-menumodule nog niet helemaal klaar voor gebruik. En het zal waarschijnlijk worden vervangen door Drupal "Toolbar". Dus op dit moment is er geen eenvoudige manier om de cache te wissen, zonder echt naar:

admin/config/development/performance

Het enige alternatief is om een ​​menu-item toe te voegen aan de bestaande werkbalk. Dit kan gedaan worden door deze module, maar zoals je kunt zien, heeft het nog steeds een beetje werk nodig. Ik liet het werken, maar moest een paar aanpassingen maken.


0
2017-12-11 05:50