我使用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),
));
答案 0 :(得分:4)
比我想象的简单......
我尝试通过附加一个具有当前安全状态的标志来覆盖方法getCacheKey()
,但起初这没有成功,但是在几次缓存清除之后,这似乎现在有效:
public function getCacheKey()
{
$key = parent::getCacheKey();
$key .= Mage::app()->getStore()->isCurrentlySecure() ? '_S' : '_U';
return $key;
}