Smarty缓存需要额外刷新

时间:2016-06-27 20:21:20

标签: php caching smarty delay

这是一个可能与环境有关的特殊问题。基本上我没有在Windows下运行Smarty这个问题,但是当迁移到Ubuntu Vagrant框时,我得到了这个奇怪的延迟:

  1. 刷新页面时,我的index.php中的所有变量var_dumps等都会正确呈现。
  2. 然而,模板在第二次刷新或有时甚至第三次刷新之前不会刷新。
  3. 我尝试在vagrant内外编辑文件,结果相同。
  4. $smarty->setCaching(Smarty::CACHING_OFF);似乎对结果有影响。
  5. 我在代码中设置了setCompileCheck(true)。我注意到刷新页面后,templates_c下的模板会刷新。但是,提供给浏览器的文件至少有一次迭代。

    我可以通过一个带有文字" A"的模板轻松验证这一点,然后添加" B",刷新,添加" C"每次刷新都是一次迭代,所以在添加C之后,我得到了#34; AB",之后的刷新显示了" C"。

    逻辑会指示这是一个聪明的模板问题,因为添加到index.php中的输出似乎会立即反映我的更改(模板除外),因此它不是apache2缓存#&# 39; s造成这种情况。

    每次刷新时清除所有模板数据都不是一种选择。

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

显然这是由于Zend缓存造成的。可以通过在Apache

上禁用它来修复
[opcache]
opcache.enable=0
opcache.enable_cli=0