1

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

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

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

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

$smarty->use_sub_dirs = true;

$smarty->compile_check = true;

4

3 回答 3

1

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

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

于 2009-05-10T03:29:01.443 回答
1

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

于 2010-09-19T19:17:14.940 回答
0

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

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

于 2009-05-10T09:59:52.907 回答