Saya memiliki situs web dengan beberapa blok statis yang berfungsi di 1.9.1.0, tetapi dengan 1.9.2.0 blok statis mulai ditampilkan secara sporadis, karena terkadang menampilkan blok yang salah daripada blok yang benar. Terkadang mereka ditampilkan sesuai keinginan. Adakah yang tahu cara mengatasi masalah ini yang mungkin terkait dengan masalah ini ?
77
Jawaban:
Saya punya masalah dengan EE 1.14.2 ini dan sepertinya masalah yang sama muncul di CE 1.9.2. Saya mendokumentasikan masalah dan solusi saya pada pertanyaan SE ini .
Pada dasarnya karena kode berikut ditambahkan ke konstruktor
Mage_Cms_Block_Block
:Blok statis CMS sekarang di-cache. Masalah muncul dari bagaimana info kunci cache dihasilkan. Itu kembali ke
Mage_Core_Block_Abstract
perilaku menggunakan nama blok dalam tata letak. Jika blok belum ditambahkan dengan tata letak, misalnya pada halaman cms, nama ini tidak ada. Ini dapat menghasilkan blok statis berbagi kunci cache yang sama dan terlibat dalam cache.Solusi saya adalah mengganti
Mage_Cms_Block_Block
kelas dan mengatur info kunci cache berdasarkan id blok dan penyimpanan saat ini.Jelas ini perlu ditambahkan dalam modul Anda sendiri dengan
config.xml
file dan blok override dll. Atau Anda dapat menyalinMage_Cms_Block_Block
ke kumpulan kode lokal dan menambahkan kunci cache di sana.Anda dapat melihat baris baru ditambahkan pada 1.9.2 di sini
sumber
Saya baru saja memutakhirkan ke 1.9.2.0 dan saya juga mengalami ini. Kategori yang diatur untuk menampilkan Blok Statis + Produk secara acak menampilkan Blok Statis yang salah. Ini tidak ada sebelum peningkatan 1.9.2.0 saya.
Perbaikan Sementara Menonaktifkan Blok Cache keluaran HTML dan blok yang ditampilkan dengan benar.
sumber
Di sini kita pergi dengan solusi berbasis modul lokal karena solusi di atas tidak menyediakan seluruh langkah. Kami perlu membuat modul Kustom karena Anda semua tahu bahwa Magento Boogieman akan membantu Anda! jika mengubah inti :)
Anda perlu file-file berikut:
app/etc/modules/Bhupendra_Cms.xml
app/code/local/Bhupendra/Cms/etc/config.xml
app/code/local/Bhupendra/Cms/Block/Block.php
app/code/local/Bhupendra/Cms/Block/Widget/Block.php
Untuk informasi lebih lanjut, Anda dapat mengunjungi tautan berikut dan juga mengunduh darinya https://www.milople.com/blogs/ecommerce/solved-magento-static-block-display-issue.html
sumber
Tidak ada tambalan resmi untuk ini, namun, itu diselesaikan pada CE 1.9.2.1
Catatan: Telah dilaporkan bahwa masih ada masalah dengan halaman CMS pada banyak tampilan toko:
Sumber: http://www.magentocommerce.com/products/bug-tracking/issue/index/id/870
sumber
Saya dapat mengkonfirmasi masalah ini juga.
Untuk mereproduksi:
Menggunakan
CMS -> Widgets
, buat widget untuk menambahkan blok statis ke sidebar kiri.Kemudian buat widget kedua untuk menambahkan blok statis kedua (blok berbeda dari dalam
step 1
) ke sidebar kiri.Jika cache dinonaktifkan, kedua blok statis ditampilkan dengan benar di sidebar.
Tetapi jika Anda mengaktifkan cache, Anda akan melihat blok statis
step 1
ditampilkan dua kali.sumber
Piotr dari Magento telah menerbitkan tambalan tidak resmi untuk masalah ini untuk saat ini: https://gist.github.com/piotrekkaminski/ecd245e8c9390e4020db
Tampaknya melakukan trik. Ya, ini sedang mengedit inti, tetapi memperbaiki masalah sampai Magento merilis tambalan resmi atau versi berikutnya ...
sumber
Tingkatkan Magento ke 1.9.2.1
Saya melakukannya dan mengaktifkan cache untuk output Blok HTML dan tampaknya sudah diperbaiki.
Serta beberapa masalah keamanan dibahas dalam rilis baru.
sumber
Dalam versi terbaru Magento meningkatkannya dengan fitur keamanan baru. Anda dapat menambahkan izin di sistem-> izin ke blok statis.
sumber
Saya memiliki masalah yang sama dengan toko saya. Solusi terbaik yang saya temukan sejauh ini adalah menonaktifkan caching untuk blok yang terpengaruh. Anda dapat melakukannya dengan mengatur masa pakai cache dari blok menjadi nol.
Menonaktifkan cache "Blok HTML keluaran" secara global di situs langsung bukan ide yang baik karena tidak perlu memengaruhi kinerja situs.
Menonaktifkan cache untuk satu blok di xml:
Menonaktifkan cache untuk satu blok di php:
Jangan setel masa cache menjadi "0" seperti yang ditunjukkan dalam artikel ini
sumber
$block->setCacheLifeTime("null");
Catatan iniNULL
dan "null" adalah dua hal yang berbeda (kemudian satu adalah string) dan karenanya hasil yang diharapkan tidak akan diperoleh.Saya dapat memperbaiki masalah ini dengan memperbarui ekstensi yang ada di Magento Connection Manager. Setelah melihat ke dalamnya, saya mendapat kesan bahwa ada masalah dalam sistem caching Magento.
Secara default Magento memiliki beberapa paket yang terkait dengan teknologi caching. Mereka termasuk adaptor dan perpustakaan untuk Zend dan Redis.
Alih-alih mencoba mencari paket yang sesuai, saya memilih untuk memperbarui semua paket di instalasi saya.
Kemudian saya memilih tanda centang pada: Mage_All_Latest Yang merupakan Metapackage untuk rilis Magento 1.9.0.0 stabil terbaru.
Dimungkinkan untuk memperbaiki masalah ini dengan memutakhirkan hanya paket yang tepat. Saya merasa ini adalah cara yang lebih baik untuk pergi karena saya curiga bahwa metode ini juga menerapkan patch keamanan.
sumber
Anda harus melakukan upgrade penuh, atau backport 1.9.2.0
Perubahan cache Blok CMS dan Widget di 1.9.2.1
magento-1921 / app / code / core / Mage / Cms / Block / Block.php
magento-1921 / app / code / core / Mage / Cms / Block / Widget / Block.php
sumber
Saya menggunakan Magento 1.9.3.8 dan masalahnya masih ada.
Anda dapat menemukan perbaikan saya di sini :
Pada dasarnya saya menambahkan string unik berdasarkan url halaman dan blockId ke setiap info kunci cache, sehingga setiap blok akan memiliki kunci unik:
Sampai Magento akan menyiapkan perbaikan untuk masalah ini, Anda dapat membuat file:
dan masukkan kode dari url github di atas sebagai konten.
Kode ini diuji untuk Magento 1.9.2. * Dan 1.9.3. *
sumber
Ini adalah bug yang dikonfirmasi dalam versi 1.9.2, untuk sementara waktu Anda dapat menyelesaikan masalah ini hanya dengan menonaktifkan cache "Blok HTML output" dari admin -> bagian manajemen cache
Semoga ini bisa membantu
sumber