Frage

Wie leere ich das Drupal-Caches:

  • ohne die Devel-Modul
  • ohne einige PHP Statement in einem neuen Knoten usw. ausgeführt werden.
  • , ohne in die Datenbank gehen selbst

Effektiv Wie weisen Sie einen Endbenutzer seine Caches zu löschen?

War es hilfreich?

Lösung

Wenn Sie als Admin angemeldet sind (natürlich nicht jeder Benutzer der Website an der Macht hat den Cache zu löschen) , sollte es eine Seite in „sein Administer> Site-Konfiguration> Performance “.

Und am unteren Rand der Seite, sollte es eine Schaltfläche sein (so etwas wie „ Löschen im Cache gespeicherten Daten “), um den Cache zu löschen

Soweit ich mich erinnere, gibt es keine Notwendigkeit für Devel, das zu tun, und Sie wirklich nicht brauchen, um die Datenbank zu gehen, noch einige hausgemachte PHP Code ausführen.


Als Referenz können Sie einen Blick auf nehmen Wie Drupal Server-seitige Cache

Andere Tipps

Sie können auch die Verwendung Drush Modul, mit dem Sie die Kommandozeile auszuführen beliebten Drupal verwenden können Befehle, wie "drush cron" oder "drush Cache klar".

Wenn Sie den Cache von einem Modul löschen möchten, können Sie den folgenden Code verwenden.

drupal_flush_all_caches();

Ich habe die einfachste Lösung dafür. Installieren Sie ADMIN_MENU Modul (eigentlich nicht nur für diesen Zweck, wenn Sie dieses Modul installiert haben, können Sie es nicht bereuen sicher, Link: http://drupal.org/project/admin_menu ). Ok, dann auf einem neu Top-Drop-Down-Menü erscheint Ihre Favicon und Drop-Down-Menü schweben erscheint, und Sie werden sehen: Flush alle Caches Menü. Ein Klick - ein Flush. Außerdem können Sie alle Caches bündig zusammen oder wählen Sie, was zu spülen: Seiten, Menüs, Themen etc. Versuchen und Sie werden nie zurückgehen)

Es wäre fantastisch, wenn Sie nur das Verhalten durch Schlagen bekommen können:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
aber man kann es nicht.
Allerdings möchte ich die URL für Kurzschneiden über das Admin-Menü beachten (verwenden Sie den letzten Teil):
http://drupal.local. /admin/settings/performance

On-Demand kann Clearing in Administer> Site Configuration> Performance erfolgen.

Sie sollten den Cron-Job-Setup jede Stunde (oder was auch immer Intervall selbst).

laufen

Wenn cron auf Drupal ausgeführt wird, werden alle Caches gelöscht und ohne die Notwendigkeit für einen Menschen wieder aufgebaut manuell zu tun.

Wenn diese Frage zu Thematisierung betrifft, sollten Sie die Caching-Mechanismen (css / js Aggregation) deaktivieren und Sie werden die Cache-Daten nicht löschen müssen, wenn Sie Änderungen vornehmen.

fand ich die folgende an: http: //www.drupalgardens. com / content / clear-all-Caches-nicht-arbeit

  

Es gibt eine andere Schicht von Caching um die Stelle, die „klar alle   beeinflussen Caches“nicht, du hast recht. Das ist die Ebene, die Geschäfte   der Inhalt für anonyme Benutzer.

     

Wenn Sie den Cache für Testzwecke umgehen möchten, können Sie fügen Sie ein   Junk-Query-String an das Ende Ihrer Website Pfad. Zum Beispiel, wenn Sie   wollte den Cache auf example.drupalgardens.com/foo Sie könnten umgehen   Besuch example.drupalgardens.com/foo?bar=baz oder anderer Zufallstext   eingerichtet wie? xxxxx xxxxx =.

Das half mir, weil ich Probleme gehabt haben, wo der Cache unter Konfiguration Clearing> Performance schien nicht zu helfen.

Der obige Code ist für Drupal 6.

Für Drupal 7 das Flush-Cache-Modul würde wie folgt aussehen:

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

Hinweis: dass Sie es dann spülen, indem Sie auf:

sitename.com/flush-cache

Stellen Sie sicher, dass Sie ihnen die Erlaubnis, auf der Erlaubnis Seite geben. Cache löscht, sobald die „normale“ Art und Weise, wenn die Genehmigung nicht nach erscheint das Modul eingeschaltet wird.

Dies ist vorzuziehen, wenn Sie nicht wollen, Ihre Client-Zugriff auf das Admin-Menü zu bekommen, aber Sie wollen immer noch sie in der Lage sein, den Cache zu leeren.

Hier gehen Sie:

hatte ich de-installieren Sie das „devel“ Modul (mit Sondermenüpunkte unvereinbar war, was ich schlimmer erforderlich), so dass ich meine eigenen.

überall sehen Sie MODULE es mit dem Namen des Moduls ersetzt werden.

Schritt 1: In jedem Modul (vorzugsweise eine Ihrer benutzerdefinierten Modulen) im HOOK_MENU, vor dem „$ Artikel zurückgeben“ Zeile:

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

Schritt 2: Jetzt, in der gleichen Moduldatei, wo es nicht „innen“ eine andere Funktion hinzu:

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

Jetzt können Sie gehen Sie einfach auf die URL „/ UP-Cache“ auf Ihrer Website den Cache zu leeren. (Nachdem Sie spülen Sie den Cache ein letztes Mal auf die alte Weise.)

Schritt 3: Wenn Sie es wirklich praktisch mögen, fügen Sie den folgenden Code zu Ihrer page.tpl.php Datei. Sie können es ausdrückte ziemlich überall zwischen und . HINWEIS: $ my_is_test ist eine Variable, ich benutze das ist TRUE auf meinem Testsystem und FALSCH in der Produktion. Wenn man so etwas nicht haben, ersetzen Sie es mit WAHR oder FALSCH schalten Sie ihn ein und aus:

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

Und voila! Sie haben einen „Flush“ Link in der oberen rechten Ecke jeder Seite, die Sie anklicken können. Fühlen Sie sich frei, um die „richtigen“ zu ändern und „top“ Mengen (oder ändern „rechts“ auf „links“ oder „oben“ nach „unten“, um es überall dort, wo es Ihnen gefallen. Dieser Link Positionierung funktioniert nur auf modernen Browsern, aber es ist nur für Sie, so dass es kein Problem sein sollte, nicht wahr?

Das folgende Modul erstellt einen Menüpunkt, der nur für Benutzer mit der Berechtigung „flush Cache“ zugänglich ist, die dieses Modul auf der regulären Benutzerberechtigungen Seite zur Verfügung stellt.

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

In Drupal 8 ist der Admin-Menü Modul nicht ganz bereit für den Einsatz vor. Und es wird wahrscheinlich mit Drupal „Toolbar“ ersetzt bekommen. So jetzt gibt es keine einfache Möglichkeit, Cache zu löschen, ohne tatsächlich gehen zu:

admin/config/development/performance

Die einzige Alternative ist ein Menüpunkt in der vorhandenen Symbolleiste hinzuzufügen. Dies kann durch Verwendung dieses Moduls getan werden, aber wie Sie sehen können, es muss noch ein bisschen Arbeit. Ich habe es funktioniert, musste aber ein paar Veränderungen machen.

Verwendung drush und dieser Befehl: drush cc alle

Wenn Sie Boost-Cache verwenden müssen Sie genauer sein:

drush @alias_name cc all
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top