Bersihkan satu url dari cache

9

Menggunakan sistem cache standar Drupal, apakah ada cara untuk menghapus cache untuk suatu node atau url tanpa menghapus seluruh cache (yang memperlambat seluruh situs)?

JM01
sumber

Jawaban:

6

Tindakan Cache modul memberikan kontrol yang sangat halus atas pembersihan cache Anda.

Sayangnya, apakah itu akan menyelesaikan masalah Anda sebenarnya tergantung pada bagaimana url ini dibangun. Jika itu tidak melakukan apa yang Anda inginkan, basis kode itu masih akan menjadi awal yang sangat baik untuk membangun lebih tepat apa yang Anda butuhkan.

Pelajaran
sumber
6

Ya, Anda dapat melakukannya secara terprogram juga.

Dalam contoh ini, kami menghapus cache halaman depan:

$url = url('<front>',  array('absolute' => TRUE));

cache_clear_all($url, 'cache_page');

Drupal menyimpan path sebagai CID dalam tabel dan dalam contoh di atas kami menyediakan URL halaman depan sebagai CID sebagai argumen pertama dalam fungsi dan jika Anda mendefinisikan CID, wajib untuk mendefinisikan argumen kedua $ bin dalam fungsi, yang merupakan seperti dari tabel mana Anda ingin menghapus cache. Karena kita harus menghapus satu halaman, maka halaman ini ada di cache_page yang menyimpan cache untuk halaman.

Sahil Gupta
sumber
3

Ada modul untuk itu: Siram halaman cache . Berikut ini adalah kutipan tentang hal itu (dari halaman proyek modul):

Meredakan rasa sakit saat Anda perlu menyiram ... Cache Drupal.

Cushing Drupal cache pada situs besar bisa terasa seperti Anda sedang menunggu untuk lepas landas di landasan di JFK. Penundaan berasal dari fakta bahwa ketika Anda membersihkan cache Drupal, itu menghapus segalanya. Sebagian besar waktu Anda hanya ingin membersihkan cache untuk objek tertentu pada halaman.

Modul 'Flush page cache' menyelesaikan masalah ini dengan hanya menyiram objek yang di-cache untuk satu halaman. Selain itu, Anda dapat menentukan objek khusus dan tabel cache yang akan dihapus pada halaman tertentu.

giorgio79
sumber
0

Opsi lain adalah membuat formulir dan menggunakan fungsi cache_clear_all pada url yang ingin Anda hapus cache. Saya menemukan contoh penggunaannya di sini

zarsiwala
sumber
0

Sedikit terlambat ke pesta di sini, tetapi, modul Cache Expire mungkin adalah yang Anda cari. Ini memberi Anda kontrol yang sangat halus atas bagaimana caching digunakan untuk beberapa jenis entitas (jika Anda menggunakan versi 2.x modul).

Namun versi modul memberi Anda akses ke tindakan Aturan "Hapus URL dari cache halaman" . Jadi, Anda dapat menentukan acara dan kondisi apa pun yang diperlukan untuk menjalankan aturan, dan kemudian URL yang Anda tentukan akan dihapus. Semoga ini membantu.

Lester Peabody
sumber
-1

hal-hal pembersihan cache dapat dilakukan hanya dengan mengunduh modul drush dari http://drupal.org/project/drush

terminal->your drupal directory

tulis perintah drush cc

Ini akan mengembalikan Anda

[0]: Batalkan
[1]: semua
[2]: drush
[3]: theme-registry [4]: ​​menu
[5]: css-js
[6]: blok
[7]: daftar modul
[8]: theme-list
[9]: registry
[10]: tampilan

Jadi, Anda dapat memilih mana yang ingin Anda hapus ..

Jika Anda ingin menghapus cache dari situs web drupal maka Anda dapat menginstal dan mengaktifkan modul http://drupal.org/project/admin_menu. Modul ini memberikan ikon beranda pada sile drupal Anda dan akan memberi Anda daftar menu tempat Anda dapat pergi. untuk hal-hal yang jelas cache ....

Nitesh Sethia
sumber
1
Dia bertanya tentang mekanisme cache kustom yang canggih
Codium
Anda dapat melakukannya drush cc viewsmisalnya di mana tampilan dapat berupa jenis apa pun dalam daftar itu.
Yzmir Ramirez