Smarty 提供文件下载而不是渲染 html

问题描述 投票:0回答:0

我有一个奇怪的问题,在某些情况下,Smarty 让浏览器下载一个空文件而不是呈现 html。这只会偶尔发生在特定页面上,并且取决于页面上的(动态)数据,问题是否会发生。 99% 使用相同模板的页面工作正常。我无法确定它无法呈现页面的确切位置以及它为什么提供文件下载。

这个问题只发生在我们的一台生产服务器上,所以我怀疑问题是服务器相关的。

有几件事似乎可以解决问题,但这些都不是永久性的修复:

  • 将 memory_limit 降低到 ~15MB 以下。这有时似乎很奇怪地解决了它。
  • 从加载到模板中的数组中删除一些随机键。同样,这完全取决于该特定项目的数组内容。
  • 删除 /tmp/compile/ 中的已编译模板。这使得页面加载一次。然后编译模板,然后在下一页加载问题再次出现。

这个我试过了但是没有效果:

  • 更新Smarty到最新版本
  • 将 application/x-httpd-php 标头添加到 .htaccess
  • 增加内存限制

PHP版本:7.4.32 Smarty 版本:4.3.0

php smarty
© www.soinside.com 2019 - 2024. All rights reserved.