Önbelleğe alma tamamen nasıl kapatılır?


26

Drupal 7'de bir site geliştiriyorum ve önbelleğe almak işimi önemli ölçüde yavaşlatıyor. Örneğin, bir form için bir tema işlevi vardı. Şaşırdım, neden işe yaramadı. Önbelleği temizleyene ve düzeltilinceye kadar.

Tamamen nasıl kapatılır?

Yanıtlar:


21

Tema işlevleri, tema kaydı tarafından işlenir: yeni bir tema işlevi almak için sitenizin tüm önbelleklerini yeniden oluşturmak (veya daha da kötüsü) gereksiz ve gözden kaçırmaktır.

Yapabileceğiniz şey, her sayfa yeniden yüklenişinde temanızın kaydını yeniden oluşturmak için Devel modülünü kullanmak . Kurulduktan sonra Yapılandırma → Geliştirme → Devel ayarları seçeneğine gidin. Burada, "Her sayfa yüklendiğinde tema kaydını yeniden oluştur" u işaretleyin ve "Yapılandırmayı kaydet" düğmesine basın. Gelişiminiz bittiğinde, işaretini kaldırmayı (ya da daha iyisi, tamamen Devel'i devre dışı bırakmayı) unutmayın.


Bu sadece tema kayıt defteri olsa da.
Andrew Welch

2
Soru “Nasıl tamamen kapatılır?”. Bu sadece bir kısmı
SeanJA

29

Varsayılan önbellek arka ucunu, aslında hiçbir şey yapmayan bir değerle değiştirebilirsiniz. Bunu settings.php dosyanıza eklemeniz yeterlidir:

if (!class_exists('DrupalFakeCache')) {
  $conf['cache_backends'][] = 'includes/cache-install.inc';
}
// Default to throwing away cache data.
$conf['cache_default_class'] = 'DrupalFakeCache';
// Rely on the DB cache for form caching - otherwise forms fail.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

Emin olmak için, önbellek son kullanma süresini Performans sayfasındaki hiçbiri olarak ayarlayın.

Aslında, eğer bunu yaparsam, settings.php dosyamın altına eklenmiş bir settings.local.php dosyasında kullanıyorum, böylece settings.php'yi canlı veya hazırlık ortamlarından dev ortamımla endişelenmek zorunda kalmadan senkronize edebiliyorum Yanlış veritabanı ayarlarının kullanılması, yanlışlıkla dev ayarlarının yaşama geçirilmesi vs.

settings.php:

if (file_exists(__DIR__ . '/settings.local.php')) {
  require_once __DIR__ . '/settings.local.php';
}

4
Aynı numarayı çöp kutusu başına önbelleğe almayı kapatmak için kullanabilirsiniz. Örneğin. $conf['cache_class_cache_metatag'] = 'DrupalFakeCache';
Alfred Armstrong,

4
Bu kabul edilen cevap olmalıdır, çünkü kabul edilen sadece tema kayıt defteri önbelleğinin nasıl devre dışı
bırakılacağını

10

Tüm önbelleklemeyi tamamen geri çeviremezsin Ve gerçekten yapsaydınız, ilerlemenizi çok daha yavaşlatırdı . Aslında önbelleği temizlediğin zamanı düşünün, her sayfa yüklenmesinin nasıl olacağını söyleyin .

Mevcut varlıklar, alanlar, formlar, uygulanmış kancalar vb. Hakkında yalnızca şu anda bir kez çalıştırılması gereken bilgiler oluşturmak için çalışan birçok kanca vardır, bunu önlemek istemezsiniz.

Drupal’a alışmaya başladığınızda, yakında önbellek gerektiren şeylerin ne olduğunu öğreneceksiniz ve muhtemelen yönetici menüleri kısayolu ile veya arkadaşlarınızla arkadaşça drush cc allolacaksınız ve bu artık bir sorun olmayacak.


Kabul et, bir keresinde yeni kancaların pürüzsüz yelkenlerini tanımadan önce bir önbelleğe ihtiyaç duyduklarını anladıktan sonra! :)
Alex Weber

2
Dürüst olmak gerekirse birkaç ay süren Drupal gelişiminden sonra bunu hala bir sorun olarak görüyorum. Yerel olarak hız geliştirmek önemli olmasa da, aynı anda istek gönderen birden fazla kullanıcınız olmadığına inanıyorum. Yerel olarak geliştirilirken önbelleği devre dışı bırakmak, diğer pek çok çerçevede (Django, Symfony vb.) Hazır bir seçenektir, neden Drupal'da buna sahip olamadığımı anlamıyorum. Her gün bir şeyin çalışmadığı ve nedeninin önbelleği temizlemeyi unuttuğumdan en az bir örneğim var, bu gerçekten sık oluyor ve beni gerçekten rahatsız ediyor.
mastazi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.