スタッフブログ

  • 最新配信
  • RSS

何だかよくわからない問題にぶちあたったらcache, templates_cの中身を削除してみましょう

Ryuji : XOOPS » TIPS小ネタ 2012/12/13 18:31

Blogger's Avatar

XOOPS Cubeを使っていると「何故かうまくうごかない」とか「さっきはちゃんと動作したのに、今はうまくうごかない」というような事態にたまに遭遇することがあります。

そんな時に念のために試してもらいたいのが、cache,templates_cディレクトリの中身を空にすることです。

cacheディレクトリには何が入る?


cacheディレクトリは、キャッシュという名前のとおり、ブロックキャッシュやモジュールキャッシュを有効にしたときに、ブロック出力のHTMLをファイルとしてキャッシュするために使われるディレクトリです。

その他にもモジュールが何かをキャッシュするためにこのディレクトリを使うことがあります。

たとえば、picoは、メインメニューに表示されるサブメニューの項目をcacheディレクトリにキャッシュします。

これに気がつかなくて、コンテンツ追加したのになんでサブメニューに表示されないんだろう?ってすごい悩んだこともあります(^^;

templates_cディレクトリって何に使われる?


こちらはSmartyテンプレートからHTML出力されるまでの間の中間ファイルが作成されるディレクトリになります。

Smartyの仕組みは、テンプレートファイルをもとにして、phpコードに変換し、phpコードを実行して出力を得るようになってます。このphpコードに変換したファイル(このファイルはコンパイル済みキャッシュと呼ばれます)の置き場所がtemplates_cです。

テンプレートに関係してよく起きる問題が「ファイルを書き換えたのに反映されない」という問題です。

こんな時にあれこれ悩む前にtemplates_cの中身をきれいさっぱり消してしまうとうまく反映されることがあります。

templates_cに作られるファイルも一種のキャッシュですので、想定外のことがあるとキャッシュが悪さして思うように変更が反映されないことがあるんですね。

ちなみに私がはまったケースでは、ディスク容量が不足したときに、中途半端なコンパイル済みキャッシュができてしまい、画面表示に失敗したというのがあります。

このときもtemplates_cをクリアしたら解決しました。

というわけで、何か変更が反映されないトラブルに遭遇したら、cache, templates_cディレクトリの中身の削除(ディレクトリは残してくださいね)を試してみてください。

トラックバック

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.