20 Kasım 2019'da cevap:
Görüntü önbelleğini komutla yeniden oluştur, herkes için uygun bir çözüm değildir, çünkü birçok ürün içeren bazı web siteleri için çok zaman alacaktır. Ayrıca, CLI'den bir önbellek görüntüsü oluşturursak, işe yarayacak gibi bazı sorunlarla karşılaştım. Yöneticiden görüntüleri temizlediğimizde veya önbelleğe alınmış görüntüyü o anda manuel olarak sildiğimizde, sayfa yüklemesinde bir önbellek görüntüsü oluşturmayacak, bu yüzden reenerate komutunu tekrar tekrar çalıştırmam gerekiyor. Benim görüşüme göre, en iyi çözüm sayfa yüklemesinde görüntü önbelleği oluşturmaktır.
Varsayılan Akış
Varsayılan Magento akışı, görüntüyü (medya) yüklediğinde gerçekleşir, her zaman pub / get.php gönderme isteğinden geçer ve görüntünün var olup olmadığını kontrol eder. Eğer mevcut değilse, yeni bir önbellek görüntüsü oluşturur. Varsa, bu yolu döndürür. Bu nedenle, varsayılan olarak görüntü sayfa yüklemesinde oluşturulmalıdır.
Bu geçişi aşağıdaki dosyalarda mantık yoluyla kontrol edebiliriz
pub/media/.htaccess
için apache sunucusuna
RewriteRule .* ../get.php [L]
.............................
.............................
nginx.conf.sample
için nginx sunucuya
location /media/ {
try_files $uri $uri/ /get.php$is_args$args;
.......................................
.......................................
Bu mantığın çalışıp çalışmadığını nasıl kontrol edebilirim?
Put echo "test";exit;
pub / get.php başlangıç ve herhangi önbelleğe medyayı URL yüklemek, bu testi yazdırmak gerekir. Aksi takdirde sunucu yapılandırmanızda bir sorun var.
Benim için, katalog önbellek dizinini (rm -rf pub / media / catalog / product / cache / *) sildiğimde, sayfayı yüklediğimizde yeni bir önbelleğe alınmış görüntü oluşturmayacak ve 404 sayfaya bulunamadı ve ayrıca get.php'ye asla ulaşmaz . Daha sonra klasörlerin çoğunun klasörlerde 755 ve dosyalar için 644'ten farklı izinlere sahip olduğunu fark ettim. Doğru izni ayarladıktan sonra iyi çalışıyor.
Umarım bir fikir verir.