在高流量网站上传的Smarty模板会导致空白页面

时间:2009-05-10 03:01:52

标签: php templates smarty lighttpd templating

我在一个使用Smarty模板系统的非常高流量的网站上工作。

当我上传当前正在使用的模板的新副本时,页面变为空白(就好像模板文件本身没有任何内容)。我必须关闭lighttpd,再次上传模板,然后重新启动lighttpd。

Smarty中是否有我应该使用的设置,我可能不会?

以下是我在Smarty内部设置的变量列表:

  

$ smarty-> use_sub_dirs = true;

     

$ smarty-> compile_check = true;

3 个答案:

答案 0 :(得分:1)

您尝试清除缓存的文件?如果文件没有完全上传并且有人请求它,它会被缓存破坏(至少这是我的想法)。我以前使用smarty,我也使用lighttpd。 (决定去XSLT)

如果页面被请求的次数超过2次,则除非关闭http服务器,否则永远无法实际更新文件。或者清除smarty缓存文件。

答案 1 :(得分:1)

不要直接复制模板,将它们复制到某个临时文件夹中,上传完成后再执行mv(移动文件操作)

答案 2 :(得分:0)

您可能希望在上传文件之前打开缓存(如果已经打开,请增加超时并确保缓存整个模板)。启用缓存并将其设置为几分钟超时,以便Smarty不会编译新上传的模板。访问包含模板的页面,以确保Smarty缓存了它。然后,在缓存过期之前上载模板。上传完成后,您可以再次关闭缓存(或将其设置回原始值)。

您可能希望向应用程序添加配置设置,以便全局打开/关闭此缓存机制。