У меня есть веб-сайт с несколькими статическими блоками, который работал в 1.9.1.0, но с 1.9.2.0 статические блоки начинают отображаться спорадически, поскольку иногда они показывают неправильный блок, а не правильный блок. Иногда они отображаются по желанию. Кто-нибудь знает, как решить эту проблему, которая может быть связана с этой проблемой ?
77
Ответы:
У меня была эта проблема с EE 1.14.2, и похоже, что такая же проблема возникла в CE 1.9.2. Я задокументировал мою проблему и решение по этому вопросу SE .
В основном из-за следующего кода, добавляемого в конструктор
Mage_Cms_Block_Block
:Статические блоки CMS теперь кэшируются. Проблема возникает из-за того, как генерируется информация о ключе кеша. Это возвращается к
Mage_Core_Block_Abstract
поведению использования имени блока в макете. Если блок не был добавлен с макетом, например, на странице CMS, это имя не существует. Это может привести к тому, что статические блоки будут использовать один и тот же ключ кеша и перепутаться в кеше.Мое решение состояло в том, чтобы переопределить
Mage_Cms_Block_Block
класс и установить информацию о ключе кэша на основе идентификатора блока и текущего хранилища.Очевидно, это необходимо добавить в ваш собственный модуль с
config.xml
переопределением файла и блока и т. Д. В качестве альтернативы вы можете скопироватьMage_Cms_Block_Block
в локальный пул кода и добавить туда ключ кеша.Вы можете увидеть новые строки, добавленные в 1.9.2 здесь
источник
Я только что обновился до 1.9.2.0 и тоже испытываю это. Категории, для которых установлено отображение Статических блоков + Продукты случайно отображают неправильный Статический блок. Этого не было до моего обновления 1.9.2.0.
Временное исправление Отключите кэш вывода блоков HTML, и блоки отображаются правильно.
источник
Здесь мы идем с локальным модульным решением, так как вышеупомянутое решение не обеспечивает целых шагов Нам нужно создать пользовательский модуль, потому что вы все знаете, что Magento Boogieman получит вас! если сменить ядро :)
Вам понадобятся следующие файлы:
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
Для получения дополнительной информации вы можете посетить следующую ссылку, а также скачать с нее https://www.milople.com/blogs/ecommerce/solved-magento-static-block-display-issue.html
источник
Официального патча для этого не существует, однако он был решен в CE 1.9.2.1
Примечание. Сообщается, что по-прежнему существуют проблемы со страницами CMS в нескольких представлениях магазина:
Источник: http://www.magentocommerce.com/products/bug-tracking/issue/index/id/870
источник
Я могу подтвердить эту проблему тоже.
Воспроизвести:
Используя
CMS -> Widgets
, создайте виджет для добавления статического блока на левую боковую панель.Затем создайте второй виджет, чтобы добавить второй статический блок (другой блок, чем в
step 1
) к левой боковой панели.Если кеш отключен, оба статических блока правильно отображаются на боковой панели.
Но если вы включите кеш, вы увидите, что статический блок
step 1
отображается дважды.источник
В настоящее время Петр из Magento опубликовал неофициальный патч для этой проблемы: https://gist.github.com/piotrekkaminski/ecd245e8c9390e4020db
Кажется, чтобы сделать трюк. Да, он редактирует ядро, но исправляет проблему, пока Magento не выпустит официальный патч или следующую версию ...
источник
Обновите Magento до 1.9.2.1
Я сделал это и включил кэш для вывода блоков HTML, и это, кажется, исправлено.
А также некоторые проблемы безопасности, решаемые в новой версии.
источник
В последней версии Magento дополняет его новыми функциями безопасности. Вы можете добавить разрешения в system-> permissions для статического блока.
источник
У меня была такая же проблема с моим магазином. Лучший обходной путь, который я обнаружил на данный момент, - это отключить кэширование для затронутых блоков. Вы можете сделать это, установив время жизни кеша блоков в null.
Глобальное отключение кеша «Блокирует вывод HTML» на живом сайте не очень хорошая идея, так как это излишне влияет на производительность сайта.
Отключение кеша для одного блока в xml:
Отключение кеша для одного блока в php:
Не устанавливайте время жизни кэша на «0», как указано в этой статье.
источник
$block->setCacheLifeTime("null");
примечание,NULL
и «null» - это две разные вещи (позже одна строка) и, следовательно, ожидаемый результат не будет получен.Я смог исправить эту проблему, обновив существующие расширения в Magento Connection Manager. Посмотрев на это, у меня сложилось впечатление, что проблема существует в системе кэширования Magento.
По умолчанию в Magento есть несколько пакетов, связанных с технологиями кэширования. Они включают в себя адаптеры и библиотеки для Zend и Redis.
Вместо того, чтобы пытаться найти подходящий пакет, я решил обновить все пакеты в моей установке.
Затем я выбрал галочку: Mage_All_Latest, которая является метапакетом для последней стабильной версии Magento 1.9.0.0.
Возможно, удастся решить проблему, обновив только нужные пакеты. Я чувствовал, что это был лучший путь, потому что я подозреваю, что этот метод также применяет исправления безопасности.
источник
Вам нужно будет сделать полное обновление или backport 1.9.2.0
Изменения в кэшировании блоков и виджетов CMS в 1.9.2.1
Magento-1921 / приложение / код / ядро / Маг / Cms / блок / Block.php
Magento-1921 / приложение / код / ядро / Маг / Cms / блок / виджет / Block.php
источник
Я использую Magento 1.9.3.8, и проблема все еще существует.
Вы можете найти мое исправление здесь :
По сути, я добавляю уникальную строку, основанную на URL страницы и blockId, к каждой информации о ключе кэша, поэтому у каждого блока будет уникальный ключ:
Пока Magento не подготовит исправление для этой проблемы, вы можете создать файл:
и вставьте код из вышеупомянутого URL GitHub в качестве содержимого.
Этот код проверен на Magento 1.9.2. * И 1.9.3. *
источник
Это подтвержденная ошибка в версии 1.9.2, в настоящее время вы можете решить эту проблему, просто отключив кэш «Блокирует вывод HTML» в разделе администратора -> Управление кешем.
Надеюсь, это поможет
источник