アプリ版:「スタンプのみでお礼する」機能のリリースについて

Smartyをつかっていて、キャッシュの設定は特にしていない(デフォルト)なのですが、

たまに(条件不明)、phpファイルを更新してアップロードしてから、
そのファイルに関連するページを見ても、以前にみたのと変わらないページが表示されることがあります。

で、template_cディレクトリに、ファイルがいっぱいあったので、
(なお、cacheディレクトリはからっぽでした)
これらを全削除すると、
必ず、最新の情報が表示されます。



このような状況になるのはどうしてなのでしょうか?

また、打開策としてはどうすればいいでしょうか?

ご存じの方いらっしゃったら、よろしくお願いいたします。

A 回答 (1件)

サーバーの日時と自分のパソコンの日時に差が有る場合起こる可能性があります。



つまり、新しくアップロードされたテンプレートの日付けよりも中間コンパイルソース(template_cに入っているファイル)の日付けが新しい場合、テンプレートが更新されていない と判断し、中間コンパイルをそのまま使う
という動きをするからです。


また、Smarty特有のバグのようで、たまに中間コンパイルソースがアホになります。
template_cにあまりにも多いファイルがたまっていくと起こるようですので、Smarty.class.phpを拡張して、template_cに表向きのURLと同様のディレクトリを掘るように作っておくと起こりにくいようです。

例えば。

/index.php
/dir/index.php
/hoge/index.php
/hoge/foo/index.php
というような構成の場合。
template_cにも

template_c/
template_c/dir/
template_c/hoge/
template_c/hoge/foo/

となるように自動的にdirを掘ってくれるような子クラスをつくっておくと発生しにくいようです
(私の経験則ですので、確実におこらなくなるってわけじゃないです)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます

なるほど、ちょっと複雑ですね。

自分のスキルではできるかどうかわかりませんが、トライしてみたいと思います。

ありがとうございます。

お礼日時:2008/09/08 00:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!