it-swarm-id.com

Bisakah saya mematikan cache untuk penyebaran pengembangan?

Pada pengembangan platform caching bisa jadi menyebalkan. Bisakah saya mematikannya? Apakah akan memengaruhi modul mana pun yang memerlukannya?

23
palbakulich

Instal modul devel yang menambahkan opsi cache yang jelas untuk administrator. Anda akan menemukan blok devel untuk ditambahkan ke wilayah untuk pembersihan cache cepat, atau jika Anda menginstal menu admin dan mendapatkan menu cepat di kiri atas untuk menghapus berbagai cache di Drupal.

Jika Anda suka menginstal baris perintah drush dan gunakan drush cc all perintah untuk menghapus cache situs Anda. Berhati-hatilah bahwa cc saat ini tidak menghapus cache Varnish jika itu berlaku untuk pengaturan Anda.

20
budda

Jika Anda menggunakan Drupal 7 Anda selalu dapat mengatur caching Anda untuk menggunakan DrupalFakeCache, yang biasanya hanya digunakan selama proses instalasi. Untuk mengaturnya, letakkan potongan kode berikut di pengaturan Anda.php:

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

Halaman 'Kinerja' dalam administrasi> konfigurasi situs akan memungkinkan Anda untuk mengaktifkan/menonaktifkan caching elemen situs yang dipilih. Template tema biasanya di-cache lebih persisten tetapi dapat dibilas dalam halaman 'kinerja' yang sama.

Modul 'Administrasi menu' akan menyediakan pintasan di bilah alat jika cache flush perlu dilakukan lebih teratur - selama dev tema saya menemukan diri saya terus-menerus memerah.

4
Storsey

Sejauh yang saya tahu tidak ada modul yang memerlukan caching . Jika Anda tidak ingin mematikannya, Anda dapat menghapusnya di Site Settings > Performance bagian.

Bahkan dengan caching dinonaktifkan Drupal tidak akan mengenali file baru yang ditambahkan ke tema sampai Anda menghapus cache.

Ada beberapa informasi tentang berbagai cara untuk menghapus cache di Drupal.org

4
Paul Jones

Selain metode Steve H disebutkan , menggunakan modul Devel membuka beberapa opsi lagi, termasuk:

  • Membangun kembali cache tema pada setiap pemuatan halaman (berguna jika Anda seorang themer yang mengerjakan file templat)
  • Blok yang akan memberikan akses mudah ke fungsi cache kosong dan instal ulang fungsi.

Dengan modul Devel dan caching dimatikan di bawah Kinerja , satu-satunya cache utama lain yang akan Anda temui dalam pengembangan rutin adalah router menu, yang dapat dibangun kembali baik menggunakan Devel atau Menu Admin seperti yang disebutkan Steve.

4
user7

Satu hal penting yang perlu diperhatikan adalah bahwa jika Anda memiliki banyak lembar gaya (baik dari tema Anda atau dari modul), maka mematikan pengoptimalan file CSS berpotensi merusak situs Anda di IE.

Meskipun tidak benar-benar caching, ada di halaman pengaturan yang sama dan sering digunakan dengan caching.

Tautan "Siram semua cache" dalam modul menu admin sangat fantastis.

4
epersonae

Jika Anda menggunakan Drupal 6, modul " Cache Disable " dapat berguna untuk tugas itu jika Anda tidak ingin [karena alasan tertentu] menginstal modul yang lebih berat) seperti Devel.

3
wildpeaks

Jumlah cache yang digunakan dengan Drupal terkadang bisa menjadi gila.

Berikut adalah metode umum untuk menonaktifkan dan menghapus Drupal cache dan terkait dengannya.


MENONAKTIFKAN Cache:

Perhatikan bahwa Anda tidak dapat menonaktifkan semua cache, karena beberapa di antaranya diperlukan oleh Drupal.

Berikut adalah metode menonaktifkan cache dengan menambahkan baris berikut ke file pengaturan Anda:

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

Jika Anda menonaktifkan semua cache, situs web Anda akan sangat lambat, jadi tidak disarankan untuk lingkungan lain yang mengecualikan mesin pengembangan Anda.


CLEARING CACHES

XCache

Hapus cache XCache jika digunakan:

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

Atau kosongkan cache di XCache di panel admin (/ xcache-admin) jika di atas tidak berfungsi.

eAccelerator

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

[~ # ~] apc [~ # ~]

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

OPCache

Kosongkan PHP OPCache jika menggunakan dengan PHP> = 5.5

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

Catatan: Di atas perintah CLI tidak akan menghapus cache untuk Apache, seperti: Opcache - Bersihkan cache di PHP5.4 dan lebih rendah .

memcached

Jika Anda menggunakan memcached, Anda harus menghapus, memulai kembali atau membunuh memcached Anda dengan salah satu metode:

Sebagai pengguna (salah satunya):

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

Sebagai root (salah satunya):

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

Disarankan juga untuk menginstal modul memcached dengan baris berikut di file pengaturan Anda:

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

Jadi cache Memcached dihapus pada standar Drupal cache yang jelas.

Varnish

Jika Anda menggunakan Varnish, disarankan untuk menginstal modul Varnish dan atur baris berikut di file pengaturan Anda:

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

Jadi cache Varnish akan dihapus bersama pada Drupal cache bersih.

Atau Anda dapat menggunakan curl untuk membersihkan halaman secara manual:

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

Baca lebih lanjut: Bagaimana saya bisa menghapus cache Varnish?

Drupal

Bersihkan Drupal cache 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();'

Anda dapat melakukan hal yang sama di/admin/config/development/performance, karena kadang-kadang cache UI dihapus dengan cara yang lebih baik daripada dari CLI.


Berikut ini adalah skrip Shell yang berguna untuk membersihkan semua cache:

#!/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

Pertanyaan lama, tapi saya baru saja melihatnya muncul sebagai terkait dengan pencarian yang saya lakukan.

Hampir semua metode pembersihan cache akhirnya memanggil drupal_flush_all_caches pada akhirnya. Anda dapat bermain-main dengan memanggil ini dalam berbagai keadaan di kode Anda sendiri.

2
mpdonadio

kita dapat menggunakan salah satu metode berikut untuk menghapus cache di drupal

1.) Kita cukup mengunjungi url domain_anda/admin/config/pengembangan/kinerja dan klik tombol hapus cache.

2.) Jika Kami telah menginstal modul drush, kami dapat menghapus cache dengan perintah drush cc all ini.

3.) Jika Kami memiliki akses basis data, kami dapat menghapus cache dengan perintah berikut (akses langsung ke basis data produksi dengan tegas tidak disarankan; gunakan salah satu alternatif sebagai gantinya jika situs Anda "langsung")

TRUNCATE TABLE cache;

TRUNCATE TABLE cache_block;

TRUNCATE TABLE cache_bootstrap;

TRUNCATE TABLE cache_field;

TRUNCATE TABLE cache_filter;

TRUNCATE TABLE cache_form; // perhatikan perbedaan penting dari tabel cache_ * lainnya - lihat info lebih lanjut di bawah ini

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.) Kami juga dapat menulis kueri dalam file modul kami db_query ("DELETE FROM {cache};");

5.) Kita dapat menggunakan drupal api untuk membersihkan cache seperti cache_clear_all ()

6.) Kita juga dapat menghapus cache dengan modul devel menginstal modul devel dan mengaktifkan "Pengembang/Pengembangan Blok" dengan ini kita dapat menghapus cache

Info selengkapnya tentang cache_form, yang memiliki tujuan berbeda dari cache lain _ tabel:

  • inti api docs untuk drupal_flush_all_caches () mengatakan "Jangan hapus cache_form - pengiriman formulir yang sedang berlangsung dapat rusak." Kekhawatiran ini hanya berlaku untuk situs dengan pengguna aktif dan tidak untuk versi pengembangan.

  • metode manual lain untuk menghapus cache yang dijelaskan dalam posting ini tidak akan memengaruhi cache_form

  • jika Anda perlu mengecilkan ukuran cache_form di situs produksi, lihat kuran tabel Cache Form sangat besar

0
SynapseIndia