我正在使用 Elastic Beanstalk,使用 CodeCommit 和 CodePipeline 部署我的应用程序。我正在使用 Smarty 进行模板化。为了避免在部署应用程序的新版本时重新编译所有模板,我希望将已编译的模板文件保留在/var/app/current/
目录之外,每次部署时它们都将被删除。
但是当我这样做时,Smarty 不会在更新原始模板文件时更新已编译的模板文件。我已经调查找出原因,当我查看 EC2 实例上的原始模板文件时,它们的最后修改日期都是 1979-12-31 05:08:00。
似乎 Elastic Beanstalk 在部署时不保留文件的修改日期。也许原始修改日期在 CodeCommit 或 CodePipeline 中丢失了?
我的猜测是 Smarty 会查看文件的修改日期来确定编译的文件是否是最新的。而且由于编译的模板比原始模板更新,即使它们不是最新的,它们也被认为是最新的。
关于如何解决这个问题的任何想法,除了在每次新部署时删除已编译的模板?有没有办法让 Elastic Beanstalk 保留修改时间?或者有没有办法让 Smarty 了解除了文件的修改日期之外模板文件已经更新?