已解决:模板文件错误
我有这样的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";
输出了该行,但如果我在之后执行此操作,则不会输出该行。
答案 0 :(得分:10)
更改templates_c目录的权限。
答案 1 :(得分:3)
授予文件夹smarty / template_c的文件夹权限。
使用命令
"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会替换那些空白的我认为不可能是导致问题的那些,但在删除它之后它工作正常。