MT4のダイナミックパブリッシングのキャッシュの有効期間を設定する

MT4でダイナミックパブリッシングに設定した場合に

キャッシュを使うように設定できます。

設定方法は公開方法として「テンプレート毎に公開オプションを設定する」を

選んで、その下のキャッシュをチェックします。

 

1.jpg  

 

この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;

とします。この例でわかると思いますが、この値は有効期限の秒数を設定します。

 

以上ですが、私は静的ファイルで運用しているため、この修正で

なんらかの不具合が起こるかは不明です。もしかしたら、長期運用した場合には

なんらかの不具合が起こる可能性があります。ということでこの修正は自己責任で

お願いします。

 

関連するエントリー

トラックバック(0)

このブログ記事を参照しているブログ一覧: MT4のダイナミックパブリッシングのキャッシュの有効期間を設定する

このブログ記事に対するトラックバックURL: http://net.mindkeepz.com/mt/mt-tb.cgi/1709

コメントする