私はElastic Beanstalkを使用しており、CodeCommitとCodePipelineを使用してアプリケーションをデプロイしています。私はテンプレート作成にSmartyを使用しています。新しいバージョンのアプリケーションをデプロイするときには、すべてのテンプレートの再コンパイルを避けるため、コンパイル済みのテンプレートファイルを/var/app/current/
ディレクトリの外に残しておき、各デプロイメントで削除されます。SmartByStalk、CodePipeline、CodeCommitを使用してSmartyファイルが再コンパイルされない
これを行うと、Smartyは元のテンプレートファイルが更新されたときにコンパイルされたテンプレートファイルを更新しません。原因を調べるために調査したところ、EC2インスタンスの元のテンプレートファイルを見ると、すべてのファイルの最終更新日は1979-12-31 05:08:00です。
展開時にElastic Beanstalkがファイルの変更日を保持していないようです。元の修正日がCodeCommitやCodePipelineで失われている可能性はありますか?
私の推測では、Smartyはファイルの更新日時を調べて、コンパイルされたファイルが最新であるかどうかを判断します。また、コンパイルされたテンプレートは元のテンプレートよりも新しいので、そうでない場合でも最新のものとみなされます。
新しいデプロイメントごとにコンパイルされたテンプレートを削除することを除いて、この問題をどのように解決できるかについてのアイデアはありますか? Elastic Beanstalkに変更時刻を保存させる方法はありますか?または、ファイルの変更日以外にテンプレートファイルが更新されたことをSmartyに理解させる方法がありますか?