只是一个简单的问题:
无效缓存是否表示缓存未运行?
答案 0 :(得分:4)
不,只是意味着它需要刷新。
在Magento中,无论何时对产品,静态块等进行更改,它都会识别出数据库中的数据不再与缓存中的数据相同。不幸的是,Magento没有意识到什么缓存数据是不同的,只是某些东西是不同的。
您需要进入系统>缓存管理并刷新无效的缓存类型。
如果您愿意,可以将其设置为自动刷新。
创建一个模块(或使用现有模块),您可以使用该模块设置cron作业以刷新缓存。创建一个文件:{namespace} / {modulename} /Model/Observer.php
在该文件中:
<?php
class <namespace>_<modulename>_Model_Observer {
public function refreshCache() {
try {
$allTypes = Mage::app()->useCache();
foreach($allTypes as $type => $blah) {
Mage::app()->getCacheInstance()->cleanType($type);
}
} catch (Exception $e) {
// do something
error_log($e->getMessage());
}
}
}
在你的模块的etc / config.xml中:
<config>
...
<crontab>
<jobs>
<{modulename}_refresh_cache>
<schedule><cron_expr>* * * * *</cron_expr></schedule>
<run><model>{modulename}/observer::refreshCache</model></run>
</{modulename}_refresh_cache>
</jobs>
</crontab>
...
</config>
现在,只要在服务器上正确配置了cron,缓存就会自动更新,就像cron运行一样。