読者です 読者をやめる 読者になる 読者になる

炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

( php ) 【解決】 Smartyのtemplate(tpl)ファイルを更新しても、ブラウザ表示でコンパイル(変更が反映)されない


Smaryのテンプレートエンジンを使ってサイトを構築中。
WinSCPを使ってtplファイルを何度更新しても、変更が反映されない問題でつまづいた。
ファイルをアップしても変更が反映されないときは、WinSCPで「templates_c」内のキャッシュファイルを削除することで、今まで対応できていたのだが、今回は「templates_c」内のフォルダは空の状態で起きた。
行った動作としては下記の通り

【1】test.tpl の記述に誤りがあり、切り戻し作業の為、バックアップファイル test_bak.tpl を test.tpl に戻しアップ
【2】Webブラウザで表示を確認するも、変更が反映されていない

色々と調べてみると、

「templates」ディレクトリ内の該当ファイルの更新日時より「templates_c」ディレクトリ内の該当ファイルの更新日時が新しい場合

この問題が発生するらしい。
時系列でまとめてみると、

●test.tpl(更新日時:2010/05/14 10:00)
●test_bak.tpl(更新日時:2010/05/13 18:00)
1.最初、本番にアップされているtest.tplファイルの更新日時は2010/05/14 10:00
「templates_c」のキャッシュファイルの更新日時も同じく2010/05/14 10:00
2.記述の誤りが発覚し、test_bak.tplファイルをtest.tplに名前を変更してファイルをアップ
※ファイルの名前を変えただけなので、更新日時は2010/05/13 18:00のまま
3.本番にアップされているtest.tplファイルの更新日時は2010/05/13 18:00
「templates_c」のキャッシュファイルの更新日時は2010/05/14 10:00

templetes_cの更新日時 > templeteの更新日時
になり、問題が発生。
解決策としては、「templetes_cの更新日時 < templeteの更新日時」となるよう
test.tplファイルの更新日時を現在の日時になるよう更新してアップするだけです。