MT4でダイナミックパブリッシングに設定した場合に
キャッシュを使うように設定できます。
設定方法は公開方法として「テンプレート毎に公開オプションを設定する」を
選んで、その下のキャッシュをチェックします。
このMTで使われているキャッシュですが、SmartyというPHPのライブラリです。
このSmartyはテンプレートにPHPから吐き出す動的コンテンツを組み込んで
キャッシュファイルを吐き出す仕組みで、キャッシュの有効期間を設定できます。
MT4のキャッシュの仕組みを見てみると、このSmartyが使われているのですが、
有効期間が設定されていません。
Smartyのキャッシュの有効期間の初期値は1日になっています。MTでも有効期間が
設定されていませんので、キャッシュの有効期間は1日になっています。
つまり、1日に一回だけファイルが更新されるのです。
でも基本的にファイルの内容が変わらないのに、キャッシュを更新する必要があるのか?
ということで、キャッシュの有効期限が切れないように変更してみました。
この変更は設定では出来ませんので、MTのプログラムを直接修正することに
なります。
変更箇所は
MT-4xxx/php/mt.php の中の
function configure_paths($blog_site_path) という関数の中の
$ctx =& $this->context(); という行があるのでその下に
$ctx->cache_lifetime = -1;
という一行を追加します。
この-1という指定がキャッシュが切れないという指定になります。
これでファイルの内容を修正しない限りは、キャッシュが有効になります。
もし有効期限を2日にしたい場合には
$ctx->cache_lifetime = 60*60*24*2;
とします。この例でわかると思いますが、この値は有効期限の秒数を設定します。
以上ですが、私は静的ファイルで運用しているため、この修正で
なんらかの不具合が起こるかは不明です。もしかしたら、長期運用した場合には
なんらかの不具合が起こる可能性があります。ということでこの修正は自己責任で
お願いします。
コメントする