簡単な質問:
無効化されたキャッシュは、キャッシュが実行されていないことを意味しますか?
いいえ、単にリフレッシュする必要があることを意味します。
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が実行されるたびにキャッシュが自動的に更新されます。