簡體   English   中英

智能緩存需要額外的刷新

[英]Smarty caching requiring extra refresh

這是一個特殊的問題,可能與環境有關。 基本上,我在Windows下運行Smarty時不會遇到此問題,但是當遷移到Ubuntu Vagrant盒時,出現以下奇怪的延遲:

  1. 刷新頁面時,index.php中的所有變量,var_dumps等均正確呈現。
  2. 但是,模板直到第二次刷新,有時甚至是第三次刷新才刷新。
  3. 我試過編輯流浪漢內部和外部的文件,結果相同。
  4. $smarty->setCaching(Smarty::CACHING_OFF); 似乎對結果有影響。

我在代碼中設置了setCompileCheck(true) 我注意到刷新頁面后,templates_c下的templates_c確實會刷新。 但是,提供給瀏覽器的文件至少要落后一個迭代。

我可以通過使用帶有文本“ A”的模板,然后添加“ B”,刷新,添加“ C”刷新等來輕松驗證這一點。每次刷新都落后一個迭代,因此在添加C之后,我得到了“ AB”,然后刷新顯示為“ C”。

邏輯將決定這是一個聰明的模板問題,因為添加到index.php中的輸出似乎可以立即反映出我的更改(除了模板),因此不是apache2緩存導致了這一問題。

不能在每次刷新時清除所有模板數據。

有任何想法嗎?

顯然,這是由於Zend緩存造成的。 可以通過在Apache上禁用它來修復

[opcache]
opcache.enable=0
opcache.enable_cli=0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM