Как использовать отдельные кэши блока для безопасного и небезопасного доступа магазина в Magento?

Я использую кэш блока Magento для главного блока навигации. Проблемой является блок, должен генерировать некоторые URL для файлов в каталоге кожи, который не может быть помещен в файлы CSS, поскольку имена файлов зависят от данных модели категории.

Теперь, когда я открываю магнето с помощью безопасного соединения (https://), блок навигации выбирается от кэша и отправляется в браузер, но с URL http://, приводящими к предупреждению в большинстве браузеров о небезопасных элементах на странице.

Я хотел бы отдельных кэшей за безопасные и небезопасные соединения. Блок навигации расширяет класс Mage_Catalog_Block_Navigation и поэтому имеет следующую конфигурацию кэша:

    $this->addData(array(
        'cache_lifetime'    => false,
        'cache_tags'        => array(Mage_Catalog_Model_Category::CACHE_TAG, Mage_Core_Model_Store_Group::CACHE_TAG),
    ));
6
задан Will Palmer 8 March 2013 в 17:13
поделиться

1 ответ

Хммм проще, чем я думал...

Я попробовал переопределить метод getCacheKey(), добавив флаг с текущим статусом безопасности, но сначала это не принесло успеха, но после нескольких чисток кэша это, кажется, работает:

public function getCacheKey()
{
    $key = parent::getCacheKey();
    $key .= Mage::app()->getStore()->isCurrentlySecure() ? '_S' : '_U';

    return $key;
}
4
ответ дан 17 December 2019 в 07:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: