我在一个使用Smarty模板系统的非常高流量的网站上工作。
当我上传当前正在使用的模板的新副本时,页面变为空白(就好像模板文件本身没有任何内容)。我必须关闭lighttpd,再次上传模板,然后重新启动lighttpd。
Smarty中是否有我应该使用的设置,我可能不会?
以下是我在Smarty内部设置的变量列表:
$ smarty-> use_sub_dirs = true;
$ smarty-> compile_check = true;
答案 0 :(得分:1)
您尝试清除缓存的文件?如果文件没有完全上传并且有人请求它,它会被缓存破坏(至少这是我的想法)。我以前使用smarty,我也使用lighttpd。 (决定去XSLT)
如果页面被请求的次数超过2次,则除非关闭http服务器,否则永远无法实际更新文件。或者清除smarty缓存文件。
答案 1 :(得分:1)
不要直接复制模板,将它们复制到某个临时文件夹中,上传完成后再执行mv(移动文件操作)
答案 2 :(得分:0)
您可能希望在上传文件之前打开缓存(如果已经打开,请增加超时并确保缓存整个模板)。启用缓存并将其设置为几分钟超时,以便Smarty不会编译新上传的模板。访问包含模板的页面,以确保Smarty缓存了它。然后,在缓存过期之前上载模板。上传完成后,您可以再次关闭缓存(或将其设置回原始值)。
您可能希望向应用程序添加配置设置,以便全局打开/关闭此缓存机制。