it-swarm.com.de

Kann ich den Cache für die Entwicklungsbereitstellung deaktivieren?

Auf der Entwicklungsplattform kann das Zwischenspeichern schmerzhaft sein. Kann ich es ausschalten? Betrifft es eines der Module, die es benötigen?

23
palbakulich

Installieren Sie das Entwicklungsmodul , das eine Option zum Löschen des Cache für Administratoren hinzufügt. Sie finden einen Entwicklungsblock, der einer Region zum schnellen Löschen des Caches hinzugefügt werden kann, oder wenn Sie Admin-Menü installieren und oben links ein Schnellmenü zum Löschen verschiedener Caches in Drupal erhalten.

Wenn Ihnen die Befehlszeile gefällt, installieren Sie drush und verwenden Sie drush cc all Befehl zum Löschen der Caches Ihrer Sites. Beachten Sie, dass drush cc derzeit den Lack-Cache nicht löscht, wenn dies für Ihr Setup gilt.

20
budda

Wenn Sie Drupal 7) verwenden, können Sie Ihr Caching jederzeit auf DrupalFakeCache einstellen, das normalerweise nur während des Installationsvorgangs verwendet wird. Um dies festzulegen, legen Sie das folgende Codeausschnitt in Ihrer settings.php ab:

include_once(DRUPAL_ROOT . '/includes/cache.inc');
include_once(DRUPAL_ROOT . '/includes/cache-install.inc');
$conf['cache_default_class'] = 'DrupalFakeCache';
9
Mikey P

Auf der Seite "Leistung" unter Administration> Site-Konfiguration können Sie das Caching ausgewählter Site-Elemente aktivieren/deaktivieren. Themenvorlagen werden in der Regel dauerhafter zwischengespeichert, können jedoch auf derselben Seite "Leistung" gelöscht werden.

Das Modul "Administrationsmenü" bietet eine Verknüpfung in einer Symbolleiste, wenn Cache-Leergut regelmäßiger durchgeführt werden muss. Während der Entwicklung des Themas werde ich ständig geleert.

4
Storsey

Soweit ich weiß, gibt es keine Module, die Caching erfordern. Wenn Sie es nicht ausschalten möchten, können Sie es im Abschnitt Site Settings > Performance Löschen.

Auch bei deaktiviertem Caching Drupal erkennt neue Dateien, die zu Themen hinzugefügt wurden, erst, wenn Sie den Cache leeren.

Unter Drupal.org finden Sie einige Informationen zu verschiedenen Möglichkeiten, den Cache zu löschen

4
Paul Jones

Zusätzlich zu den Methoden Steve H erwähnt eröffnet die Verwendung des Moduls Devel einige weitere Optionen, darunter:

  • Neuerstellen des Theme-Cache bei jedem Laden der Seite (nützlich, wenn Sie ein Themer sind, der an Vorlagendateien arbeitet)
  • Ein Block, der einen einfachen Zugriff auf die Funktion für leeren Cache und die Neuinstallation ermöglicht.

Wenn das Entwicklungsmodul und das Caching unter Leistung deaktiviert sind, ist der einzige andere wichtige Cache, auf den Sie bei der Routineentwicklung stoßen, der Menü-Router Wie von Steve erwähnt, entweder mit Devel oder Admin Menu neu erstellt.

4
user7

Eine wichtige Sache, die Sie beachten sollten, ist, dass das Deaktivieren der CSS-Dateioptimierung Ihre Site im IE beschädigen kann, wenn Sie viele Stylesheets (entweder aus Ihrem Thema oder aus Modulen) haben.

Obwohl es nicht wirklich zwischengespeichert wird, befindet es sich auf derselben Einstellungsseite und wird häufig beim Zwischenspeichern verwendet.

Der Link "Alle Caches leeren" im Admin-Menümodul ist übrigens fantastisch.

4
epersonae

Wenn Sie Drupal 6) verwenden, kann das Modul " Cache Disable " für diese Aufgabe nützlich sein, wenn Sie [aus irgendeinem Grund] keine schwereren Module installieren möchten wie Devel.

3
wildpeaks

Anzahl der mit Drupal] verwendeten Caches kann manchmal verrückt werden.

Hier sind die gängigen Methoden zum Deaktivieren und Löschen von Drupal Caches, die damit verbunden sind.


CACHES DEAKTIVIEREN:

Beachten Sie, dass Sie nicht alle Caches deaktivieren können, da einige von ihnen von Drupal benötigt werden.

Hier ist eine Methode zum Deaktivieren der Caches, indem Sie der Einstellungsdatei die folgenden Zeilen hinzufügen:

// Disable caches
$conf['cache'] = 0;
$conf['block_cache'] = 0;
$conf['views_skip_cache'] = TRUE;
$conf['page_compression'] = 0;
$conf['preprocess_css'] = 0;
$conf['preprocess_js'] = 0;

Wenn Sie alle Ihre Caches deaktivieren, ist Ihre Website sehr langsam. Daher wird dies nicht für andere Umgebungen empfohlen, die Ihren Entwicklungscomputer ausnehmen.


CACHES LÖSCHEN

XCache

Löschen Sie XCache-Caches, falls verwendet:

drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();"

Oder löschen Sie den Cache in XCache im Admin-Bereich (/ xcache-admin), wenn dies nicht funktioniert.

eAccelerator

drush eval "function_exists('accelerator_reset') && accelerator_reset();"

[~ # ~] apc [~ # ~]

drush eval "function_exists('apc_clear_cache') && apc_clear_cache();"

OPCache

Löschen Sie PHP OPCache bei Verwendung mit PHP> = 5.5)

drush eval "function_exists('opcache_reset') && opcache_reset();"

Hinweis: Der obige CLI-Befehl löscht den Cache für Apache nicht wie folgt: Opcache - Cache in PHP5.4 und niedriger bereinigen .

memcached

Wenn Sie memcached verwenden, sollten Sie memcached mit einer der folgenden Methoden löschen, neu starten oder beenden:

Als Benutzer (einer davon):

echo flush_all > /dev/tcp/127.0.0.1/11211
echo flush_all | nc localhost 11211 # Flush Contents Of a Memcached Server

Als Wurzel (eine davon):

/etc/init.d/rc.d/memcached restart
service memcached restart
killall memcached # It's automatically restarted on OSX.

Es wird außerdem empfohlen, das memcached-Modul mit der folgenden Zeile in Ihrer Einstellungsdatei zu installieren:

$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc';

Memcached-Caches werden also auf Standard Drupal Cache löschen) gelöscht.

Lack

Wenn Sie Varnish verwenden, wird empfohlen, das Modul Varnish zu installieren und die folgende Zeile in Ihrer Einstellungsdatei festzulegen:

$conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc';

Der Lack-Cache wird also zusammen auf Drupal Cache löschen) gelöscht.

Alternativ können Sie Curl verwenden, um die Seiten manuell zu löschen:

curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123

Lesen Sie mehr: Wie kann ich den Lack-Cache leeren?

Drupal

Clear Drupal Caches via Drush:

drush cc all
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
drush eval 'menu_rebuild();'

Sie können dasselbe unter/admin/config/development/performance tun, da UI-Caches manchmal besser gelöscht werden als über die CLI.


Hier ist das nützliche Shell-Skript zum Löschen aller Caches:

#!/bin/bash
set -o xtrace
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
echo 'flush_all' | nc localhost 11211 # Flush Contents Of a Memcached Server
drush eval "function_exists('opcache_reset') && opcache_reset(); function_exists('xcache_clear_cache') && xcache_clear_cache();"
drush eval 'menu_rebuild();'
set -o xtrace -
echo done.
2
kenorb

Alte Frage, aber ich habe gerade gesehen, dass sie als verwandte Frage zu einer Suche auftauchte, die ich durchgeführt habe.

Fast alle Cache-Löschmethoden rufen am Ende drupal_flush_all_caches auf. Sie können damit spielen, dies unter verschiedenen Umständen in Ihrem eigenen Code aufzurufen.

2
mpdonadio

wir können eine der folgenden Methoden verwenden, um den Cache in Drupal zu löschen

1.) Wir können einfach die URL your_domain/admin/config/development/performance besuchen und auf die Schaltfläche Cache löschen klicken.

2.) Wenn wir das Drush-Modul installiert haben, können wir den Cache mit diesem Befehl drush cc all löschen.

3.) Wenn wir Datenbankzugriff haben, können wir den Cache mit den folgenden Befehlen löschen (direkter Zugriff auf eine Produktionsdatenbank wird ausdrücklich nicht empfohlen; verwenden Sie stattdessen eine der Alternativen, wenn Ihre Site "live" ist).

TRUNCATE TABLE-Cache;

TRUNCATE TABLE cache_block;

TRUNCATE TABLE cache_bootstrap;

TRUNCATE TABLE cache_field;

TRUNCATE TABLE cache_filter;

TRUNCATE TABLE cache_form; // Wichtige Unterschiede zu anderen cache_ * -Tabellen beachten - weitere Informationen unten

TRUNCATE TABLE cache_image;

TRUNCATE TABLE cache_menu;

TRUNCATE TABLE cache_page;

TRUNCATE TABLE cache_path;

TRUNCATE TABLE cache_token;

TRUNCATE TABLE cache_update;

4.) Wir können auch eine Abfrage in unsere Moduldatei db_query schreiben ("DELETE FROM {cache};");

5.) Wir können drupal api) zum Löschen des Cache wie cache_clear_all () verwenden.

6.) Wir können den Cache auch durch das Entwicklungsmodul löschen, das Entwicklungsmodul installieren und den "Entwickler/Entwicklungsblock" aktivieren, indem wir den Cache löschen können

Weitere Informationen zu cache_form, die einen anderen Zweck hat als andere cache _ Tabellen:

  • in den Kern-API-Dokumenten für drupal_flush_all_caches () heißt es: "Cache_form nicht löschen - laufende Formularübermittlungen können fehlschlagen." Dieses Problem gilt nur für Websites mit aktiven Benutzern und nicht für Entwicklungsversionen.

  • andere in diesem Beitrag beschriebene manuelle Methoden zum Löschen von Caches wirken sich nicht auf cache_form aus

  • wenn Sie die Größe von cache_form auf einer Produktionssite verkleinern müssen, lesen Sie Die Größe der Cache Form-Tabelle ist enorm

0
SynapseIndia