it-swarm.dev

Bagaimana cara mengosongkan Cache Drupal (tanpa Devel)

Bagaimana cara mengosongkan cache Drupal:

  • tanpa modul Devel
  • tanpa menjalankan beberapa PHP Pernyataan di simpul baru dll.
  • tanpa masuk ke dalam database itu sendiri

Secara efektif, bagaimana Anda menginstruksikan pengguna akhir untuk menghapus cache-nya?

20
alexanderpas

Ketika Anda login sebagai admin (jelas, tidak setiap pengguna situs memiliki kekuatan untuk menghapus cache) , harus ada halaman di " Administer> Konfigurasi Situs> Kinerja ".

Dan, di bagian bawah halaman, harus ada tombol (sesuatu seperti " Hapus data cache ") untuk menghapus cache

Sejauh yang saya ingat, tidak perlu bagi Devel untuk melakukan itu, dan Anda benar-benar tidak perlu pergi ke database, atau menjalankan beberapa kode PHPbuatan-rumah.


Sebagai referensi, Anda dapat melihat Cara Menghapus cache sisi server Drupal

44
Pascal MARTIN

Anda juga dapat menggunakan modul Drush , yang memungkinkan Anda menggunakan baris perintah untuk menjalankan perintah Drupal yang populer, seperti "drush cron" atau "drush cache clear".

20
Niels

Jika Anda ingin menghapus cache dari modul, Anda dapat menggunakan kode berikut.

drupal_flush_all_caches();
7
sagesolutions

Saya punya solusi termudah untuk itu. Instal modul admin_menu (sebenarnya tidak hanya untuk tujuan ini, setelah Anda menginstal modul ini, Anda tidak akan menyesalinya, tautkan: http://drupal.org/project/admin_menu ). Oke, lalu pada menu dropdown atas yang baru muncul, arahkan favicon Anda dan menu dropdown akan muncul, dan Anda akan melihat: Siram semua menu cache. Satu klik - satu flush. Selain itu, Anda dapat menyatukan semua cache bersama-sama atau memilih apa yang akan dibilas: Halaman, menu, tema, dll. Coba dan Anda tidak akan pernah kembali)

4
user143520

Akan luar biasa jika Anda bisa MENDAPATKAN perilaku tersebut dengan menekan:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
tetapi Anda tidak bisa.
Namun saya ingin mencatat URL untuk memotong pendek melalui menu admin (gunakan bagian terakhir):
http://drupal.local. /admin/settings/performance

3
dlamblin

Kliring berdasarkan permintaan dapat dilakukan di Administer> Site Configuration> Performance.

Anda harus mengatur pekerjaan cron untuk dijalankan setiap jam (atau berapa pun interval sesuai keinginan Anda).

Ketika cron dijalankan pada Drupal, semua cache dibersihkan dan dibangun kembali tanpa perlu manusia secara manual melakukannya.

Jika pertanyaan ini berkaitan dengan tema, Anda harus menonaktifkan mekanisme caching (agregasi css/js) dan Anda tidak perlu menghapus data cache saat membuat perubahan.

1
Kevin

Saya menemukan yang berikut di: http://www.drupalgardens.com/content/clear-all-caches-not-working

Ada lapisan caching lain di sekitar situs yang "hapus semua Cache" tidak memengaruhi, Anda benar. Itulah lapisan yang menyimpan Konten untuk pengguna anonim.

Jika Anda ingin memotong cache untuk tujuan pengujian, Anda dapat menambahkan string kueri sampah Ke akhir jalur situs Anda. Misalnya, jika Anda Ingin memintas cache pada example.drupalgardens.com/foo Anda bisa Mengunjungi example.drupalgardens.com/foo?bar=baz atau teks acak lainnya diatur seperti? xxxxx = xxxxx.

Ini membantu saya, karena saya memiliki masalah ketika membersihkan cache di bawah Konfigurasi> Performa sepertinya tidak membantu.

1
ansorensen

Kode di atas adalah untuk Drupal 6.

Untuk Drupal 7 modul flush-cache adalah sebagai berikut:

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

Catatan: Anda kemudian menyiramnya dengan masuk ke:

sitename.com/flush-cache

Pastikan Anda memberi mereka izin di halaman izin. Bersihkan cache dengan cara "normal" jika izin tidak muncul setelah modul dinyalakan.

Ini lebih disukai ketika Anda tidak ingin klien Anda mendapatkan akses ke menu admin tetapi Anda tetap ingin mereka dapat membersihkan cache.

1

DI SINI KAMU:

Saya harus menginstal modul "devel" (itu tidak kompatibel dengan Item Menu Khusus, yang saya butuhkan lebih buruk), jadi saya membuatnya sendiri.

Di mana pun Anda melihat MODULENAME gantilah dengan nama modul Anda.

LANGKAH 1: Tambahkan ke modul apa saja (lebih disukai salah satu modul khusus Anda) di HOOK_MENU, sebelum baris "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,
);

LANGKAH 2: Sekarang, di file modul yang sama, di mana itu tidak "di dalam" fungsi lain, tambahkan:

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

Sekarang, Anda bisa pergi ke URL "/ flush-cache" di situs Anda untuk flush cache. (Setelah Anda membersihkan cache untuk terakhir kalinya dengan cara yang lama.)

LANGKAH 3: Jika Anda menginginkannya BENAR-BENAR nyaman, tambahkan berikut ini ke file page.tpl.php Anda. Anda dapat meletakkannya di mana saja antara <body> dan </body>. CATATAN: $ my_is_test adalah variabel yang saya gunakan itu BENAR pada sistem pengujian saya, dan FALSE dalam produksi. Jika Anda tidak memiliki sesuatu seperti itu, ganti dengan TRUE atau FALSE untuk menghidupkan atau mematikannya:

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

Dan voila! Anda memiliki tautan "flush" di sudut kanan atas setiap halaman yang dapat Anda klik. Jangan ragu untuk mengubah jumlah "kanan" dan "atas" (atau ubah "kanan" menjadi "kiri" atau "atas" menjadi "bawah" untuk meletakkannya di mana pun Anda suka. Penempatan tautan ini hanya berfungsi pada peramban modern, tetapi hanya untukmu, jadi itu seharusnya bukan masalah, kan?

0
Jeffiekins

Modul berikut ini membuat item menu yang hanya dapat diakses oleh pengguna dengan izin "flush cache", yang disediakan modul ini pada halaman izin pengguna biasa.

/**
 * 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
Shaun Dychko

Di Drupal 8, modul menu admin belum siap untuk digunakan. Dan itu mungkin akan diganti dengan Drupal "Toolbar". Jadi saat ini tidak ada cara mudah untuk menghapus cache, tanpa benar-benar pergi ke: 

admin/config/development/performance

Satu-satunya alternatif adalah menambahkan item menu di toolbar yang ada. Ini dapat dilakukan dengan menggunakan modul ini , tetapi seperti yang Anda lihat, masih perlu sedikit kerja Saya berhasil, tetapi harus melakukan beberapa penyesuaian.

0
coderama