Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

PrestaShop önbelleği nasıl doğru şekilde temizlenir

PrestaShop, her ziyarette her şeyi yeniden hesaplamamak için sayfalarının önceden derlenmiş bir sürümünü bellekte tutar. Görünmeyen bir değişiklik ya da düzeltilmesine rağmen devam eden bir hata, neredeyse her zaman doğru yerde temizlenmesi gereken bu önbellekten kaynaklanır.

Sorunumu anlatayım Mesaj gönderin

Sürüme göre önbelleği temizlemek

  1. Yönetim panelinden (tüm sürümler)

    Gelişmiş Parametreler > Performans, Smarty önbelleğini temizlemek için bir düğme sunar. PrestaShop'un öngördüğü çerçevede kaldığı için en güvenli yöntemdir.

  2. PrestaShop 1.7, 8 ve 9'da FTP ile

    var/cache/prod ve var/cache/dev klasörlerinin içeriğini silin; klasörleri tamamen silmek yerine boş halde bırakın: PrestaShop bunları bir sonraki istekte otomatik olarak yeniden oluşturur.

  3. PrestaShop 1.6'da FTP ile

    Sırasıyla derlenmiş şablonları ve render önbelleğini içeren cache/smarty/compile ve cache/smarty/cache klasörlerinin içeriğini boşaltın.

  4. Görünümü kontrol etmek

    Kontrolü yanıltabilecek her türlü tarayıcı önbelleğini devre dışı bırakmak için ilgili sayfayı gizli sekmede yeniden yükleyin.

  5. Varsa sunucu önbelleğini de temizlemek

    Bir bellek önbelleği (Redis, Memcached) veya bir sayfa önbelleği (Varnish, paylaşımlı barındırma eklentisinin önbelleği) kullanılıyorsa, ayrıca temizlenmelidir: PrestaShop önbelleği ile sunucu önbelleği birbirinden farklı iki katmandır.

İki farklı önbellek, iki farklı etki

Derleme önbelleği, şablon dosyalarını (.tpl) yalnızca bir kez çalıştırılabilir PHP koduna dönüştürür, ardından kaynak şablon değişmediği sürece bu sonucu yeniden kullanır. Bunu temizlemek PrestaShop'u yeniden derlemeye zorlar; bu, görünmeyen bir tema değişikliğinden sonra gereklidir.

Render önbelleği ise, her ziyarette yeniden oluşturmaktan kaçınmak için zaten üretilmiş sayfa parçalarını (genellikle menü veya alt bilgi gibi bloklar) saklar. Bunu temizlemek, veritabanında doğrulanmış bir değişikliğe rağmen sitenin ön yüzünde görünmeyen bir yapılandırma, kategori veya ürün değişikliğinden sonra gereklidir.

PrestaShop 1.7 ve sonrasında Symfony tarafında üçüncü bir katman daha vardır: yönetim panelinin yapılandırması (menüler, formlar) da var/cache içinde önbelleğe alınır. Yönetim menüsünde görünmeyen yeni bir sekme veya eklenti, genellikle özellikle bu önbelleğin temizlenmesiyle çözülür.

Sık yapılan hatalar

  • var/cache klasörünün içeriği yerine klasörün kendisini silmek; sunucunun yazma izinleri klasörü yeniden oluşturmaya yetmezse bu bir hataya yol açabilir.
  • Önbelleği temizlemeyi tarayıcı önbelleğini temizlemekle karıştırmak: doğru şekilde uygulanmış bir değişiklik, tarayıcı yerel olarak kayıtlı bir sürümü gösterdiği için yok gibi görünebilir.
  • Büyük bir katalogda yoğun trafik döneminde önbelleği temizlemek: sayfalar yeniden derlenene kadar önbelleğin yeniden oluşturulması daha fazla sunucu kaynağı tüketir.
  • Mağaza bir CDN kullanıyorsa CDN önbelleğini unutmak: değiştirilen CSS veya JS dosyaları, PrestaShop önbelleği temizlendikten çok sonra bile ziyaretçi tarafında güncel olmayan halde kalabilir.

Sıkça sorulan sorular

Önbelleği temizlemek veri kaybına yol açar mı?
Hayır, önbellek yalnızca veritabanında zaten bulunan içeriğin yeniden hesaplanabilir sürümlerini içerir. Önbelleği temizlemek hiçbir siparişi, ürünü veya müşteriyi etkilemez.
Önbellek temizlendikten hemen sonra site neden daha yavaş oluyor?
Bu normaldir: temizlikten sonraki ilk ziyaretler önbelleği sayfa sayfa yeniden oluşturur, bu da biraz daha zaman alır. En çok ziyaret edilen sayfalar yeniden derlendiğinde normal hız geri döner.
Her ürün değişikliğinden sonra önbelleği temizlemek gerekir mi?
Hayır, PrestaShop yönetim panelinden yapılan değişikliklerde ilgili önbelleği otomatik olarak geçersiz kılar. Manuel temizlik yalnızca dosyalarda doğrudan yapılan değişikliklerde veya kalıcı bir anormal davranış durumunda faydalıdır.
Yönetim panelindeki temizleme düğmesi soluk görünüyor veya hataya yol açıyorsa ne yapılmalı?
Bu genellikle var/cache veya cache/smarty üzerindeki yazma izinleriyle ilgili bir sorunu gösterir: PrestaShop'un bu klasörleri kendisi temizleyip yeniden oluşturabilmesi için web sunucusunun bu klasörlere yazabilmesi gerekir.

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

pages
cache
catalogue
hebergement (facultatif)
mesure (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.