我有一個Symfony項目,它還發送一些標準的電子郵件,如「親愛的用戶XYZ,請找到附件」等 - 這些電子郵件的內容存儲在Twig模板,如yourfile.html.twig。管理員可以通過簡單的網絡界面來改變這些基本的「文本文件」。任何更改都會寫回文件。這些電子郵件與SwiftMailer一起發送,就像他們的文檔中的示例代碼中的文件路徑與樹枝模板一樣。Symfony2/Twig:如何強制重新渲染單個模板?
這在調試環境中正常工作 - 因爲Twig會自動重新發送已更改的緩存文件。但是,當我在生產環境中時,這不再起作用。對郵件模板所做的更改無法被Twig識別,並且它使用緩存版本(因此用戶會收到一封包含舊版本文本的電子郵件)。
解決此問題的一種方法是每次管理員更改電子郵件模板時清除緩存(這不會經常發生)。無論如何,我不喜歡這種方式,因爲它迫使每一頁的完全重投,這只是浪費資源...
另一種可能性是在生產環境中啓用Twig的「自動重新渲染」功能,但我對此解決方案再次感到不滿,因爲它會導致性能損失...
這樣做的「最佳」方法是調用某個函數來重新渲染這一個已更改的文件(僞代碼:twig-> rerender(「path/to/file/yourfile.html.twig」)),但我找不到任何方法來完成此操作。也許我只是使用了錯誤的關鍵字進行搜索?
我真的很感激,如果有人有如何解決上述問題的想法!
由於提前, katze_sonne
一個這樣的例子可以在這裏找到http://stackoverflow.com/questions/14234464/disable-twig-compilation-cache-for-a-particular-template – Giovanni