Tengo un sitio web con múltiples bloques estáticos que funcionaba en 1.9.1.0, pero con 1.9.2.0 los bloques estáticos comienzan a mostrarse esporádicamente, ya que a veces muestran el bloque incorrecto en lugar del bloque correcto. A veces se muestran como se desea. ¿Alguien sabe cómo resolver este problema que puede estar relacionado con este problema ?
77
Respuestas:
Tuve este problema con EE 1.14.2 y parece que ha surgido el mismo problema en CE 1.9.2. Documenté mi problema y solución en esta pregunta SE .
Básicamente debido al siguiente código que se agrega al constructor de
Mage_Cms_Block_Block
:Los bloques estáticos de CMS ahora se almacenan en caché. El problema surge de cómo se genera la información de la clave de caché. Recurre al
Mage_Core_Block_Abstract
comportamiento de usar el nombre de los bloques en el diseño. Si el bloque no se ha agregado con el diseño, por ejemplo, en una página de cms, este nombre no existe. Esto puede provocar que los bloques estáticos compartan la misma clave de caché y se mezclen en la caché.Mi solución fue anular la
Mage_Cms_Block_Block
clase y establecer la información de la clave de caché en función de la identificación del bloque y la tienda actual.Obviamente, esto debería agregarse en su propio módulo con un
config.xml
archivo y anular el bloqueo, etc. Alternativamente, podría copiarMage_Cms_Block_Block
al grupo de códigos local y agregar la clave de caché allí.Puedes ver las nuevas líneas agregadas en 1.9.2 aquí
fuente
Acabo de actualizar a 1.9.2.0 y también estoy experimentando esto. Las categorías configuradas para mostrar Bloques estáticos + Productos muestran aleatoriamente el Bloque estático incorrecto. Esto no existía antes de mi actualización 1.9.2.0.
Solución temporal Deshabilite la caché de salida HTML de bloques y los bloques que se muestran están correctamente
fuente
Aquí vamos con la solución basada en el módulo local, ya que la solución anterior no proporciona pasos completos. ¡Necesitamos crear un módulo personalizado porque todos saben que Magento Boogieman lo atrapará! si cambia el núcleo :)
Necesitará los siguientes archivos:
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
Para obtener más información, puede visitar siguiente enlace y descarga de ella https://www.milople.com/blogs/ecommerce/solved-magento-static-block-display-issue.html
fuente
No hay un parche oficial para esto, sin embargo, se resolvió en CE 1.9.2.1
Nota: Se ha informado que todavía hay problemas con las páginas de CMS en varias vistas de la tienda:
Fuente: http://www.magentocommerce.com/products/bug-tracking/issue/index/id/870
fuente
También puedo confirmar este problema.
Reproducir:
Con el
CMS -> Widgets
, cree un widget para agregar un bloque estático a la barra lateral izquierda.Luego, cree un segundo widget para agregar un segundo bloque estático (un bloque diferente que en
step 1
) a la barra lateral izquierda.Si la memoria caché está desactivada, ambos bloques estáticos se muestran correctamente en la barra lateral.
Pero si habilita el caché, verá que el bloque estático se
step 1
muestra dos veces.fuente
Piotr de Magento ha publicado un parche no oficial para este problema por el momento: https://gist.github.com/piotrekkaminski/ecd245e8c9390e4020db
Parece funcionar. Sí, está editando el núcleo, pero soluciona el problema hasta que Magento lanza el parche oficial o la próxima versión ...
fuente
Actualice Magento a 1.9.2.1
Lo hice y habilité el caché para la salida HTML de Blocks y parece estar solucionado.
Además, algunos problemas de seguridad se abordan en la nueva versión.
fuente
En la última versión de Magento lo mejora con nuevas características de seguridad. Puede agregar permisos en sistema-> permisos al bloque estático.
fuente
Tuve el mismo problema con mi tienda. La mejor solución que he descubierto hasta ahora es desactivar el almacenamiento en caché de los bloques afectados. Puede hacerlo estableciendo la duración de la memoria caché de los bloques como nula.
Desactivar globalmente el caché "Blocks HTML output" en un sitio en vivo no es una buena idea ya que afecta innecesariamente el rendimiento del sitio.
Deshabilitar el caché para un bloque en xml:
Deshabilitar el caché para un bloque en php:
No establezca la duración de la memoria caché en "0" como se señala en este artículo
fuente
$block->setCacheLifeTime("null");
notaNULL
y "nulo" son dos cosas diferentes (luego una es una cadena) y, por lo tanto, no se obtendrá el resultado esperado.Pude solucionar este problema actualizando las extensiones existentes en Magento Connection Manager. Después de investigarlo, tenía la impresión de que el problema existe en el sistema de almacenamiento en caché de Magento.
Por defecto, Magento tiene varios paquetes relacionados con sus tecnologías de almacenamiento en caché. Incluyen adaptadores y bibliotecas para Zend y Redis.
En lugar de tratar de encontrar el paquete apropiado, elegí actualizar todos los paquetes en mi instalación.
Luego elegí la marca de verificación en: Mage_All_Latest, que es un Metapackage para la última versión estable de Magento 1.9.0.0.
Es posible solucionar el problema actualizando solo los paquetes correctos. Sentí que esta era la mejor manera de hacerlo porque sospecho que este método también aplica parches de seguridad.
fuente
Tendrás que hacer una actualización completa o hacer un backport 1.9.2.0
Bloque de CMS y cambios de almacenamiento en caché de widgets en 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
fuente
Estoy usando Magento 1.9.3.8 y el problema aún existe.
Puedes encontrar mi solución aquí :
Básicamente, estoy agregando una cadena única basada en la URL de la página y blockId a cada información de clave de caché, por lo que cada bloque tendrá una clave única:
Hasta que Magento prepare una solución para este problema, puede crear el archivo:
e inserte el código de la URL de github anterior como contenido.
Este código se prueba para Magento 1.9.2. * Y 1.9.3. *
fuente
Esto es un error confirmado en la versión 1.9.2, por el momento puede resolver este problema simplemente deshabilitando el caché "Blocks HTML output" del administrador -> sección de gestión de caché
Espero eso ayude
fuente