Smarty输出空白页面

时间:2009-12-19 10:27:37

标签: php smarty

已解决:模板文件错误

我有这样的Smarty设置:

require_once 'smarty/Smarty.class.php';
$smarty = new Smarty();

$smarty->compile_dir = $compile_dir;
$smarty->template_dir = $tpl_dir;

这就是我现在应该需要的所有内容......我将Smarty设置与其他网站完全相同,并且它在同一台服务器上运行良好。

var_dump($smarty)输出所有公共变量,$smarty->template_exists("index.tpl")返回1,这两者都表明Smarty已正确设置并正常工作,但$smarty->display("index.tpl")和{{1}输出空白页面。 index.tpl文件肯定包含HTML。

我忘了一些步骤或者什么?

编辑:

$output = $smarty->fetch("index.tpl"); echo $output;

还为Smarty创建了配置目录。

并尝试ini_set('display_errors', true); error_reporting(E_ALL + E_NOTICE);

仍为空白页。

如果我在$output = $smarty->fetch("index.tpl"); var_dump($output)之前echo "foo";输出了该行,但如果我在之后执行此操作,则不会输出该行。

4 个答案:

答案 0 :(得分:10)

更改templates_c目录的权限。

答案 1 :(得分:3)

授予文件夹smarty / template_c的文件夹权限。

我使用Mac,请按照以下步骤操作:

  • 打开终端
  • 转到htdocs文件夹
  • 转到项目
  • 转到Smarty lib
  • 使用命令

    "chmod -R 0777 template_c"
    

我的项目存在于文件夹

    naveenos-MacBook-Pro:smarty nos$ chmod -R 0777 /Application/XAMPP/htdocs/smartyProject/lib/smarty/templates_c/

那就是它。

答案 2 :(得分:0)

尝试向您的页面添加错误检查

ini_set('display_errors', true);
error_reporting(E_ALL + E_NOTICE);

如果这对您没有任何帮助,我会尝试设置$smarty->config_dir$smarty->cache_dir属性。可能需要它们。

当然,请确保所有目录的文件权限都有效,并且SAFE_MODE已关闭。 (这可能会以非常奇怪的方式扰乱Smarty。)

答案 3 :(得分:0)

我在模板文件中有额外的{foo.bar}(没有$)变量,这些变量应该在代码中稍后实现,假设Smarty会替换那些空白的我认为不可能是导致问题的那些,但在删除它之后它工作正常。