一千萬個為什麽

搜索

如何在Magento中使用單獨的塊緩存來實現安全和不安全的商店訪問?

我使用Magento塊緩存作為頂部導航塊。問題是塊必須為skin目錄中的文件生成一些不能放入css文件的URL,因為文件名依賴於類別模型數據。

現在,當我使用安全連接(https://)打開magento時,導航塊從緩存中獲取並發送到瀏覽器,但是使用http:// urls會在大多數瀏覽器中發出關於頁面上不安全元素的警告。

我希望有安全和不安全連接的分離緩存。導航塊擴展了類 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),
    ));

最佳答案

嗯比我想象的簡單......

我嘗試通過附加一個具有當前安全狀態的標誌來覆蓋方法 getCacheKey()但是起初這沒有成功,但是在幾次緩存清除之後,這似乎現在起作用:

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

    return $key;
}

轉載註明原文: 如何在Magento中使用單獨的塊緩存來實現安全和不安全的商店訪問?