我无法从子目录中显示tpl文件。
根目录中的php文件工作正常,但如果php文件位于子文件夹中,则显示方法无效。
我发现smarty中的模板路径是一个相对路径。所以对我来说,显示器无法工作是有道理的,因为路径是错误的。
所以我将模板路径设置为
$smarty->setTemplateDir($_SERVER['HTTP_HOST'].'/templates');
这是templates文件夹,它是根目录的一部分。
但它的绊脚石也不起作用。
任何想法? :/
编辑:
完整代码:
require('../../../model/smarty/Smarty.class.php');
$smarty = new Smarty();
include "../../../model/smarty/smarty_config.php";
var_dump($smarty->getTemplateDir());
$smarty->assign('dummy','Smarty Dummy Place');
$smarty->display('indexNotLoggedIn.tpl');
第一行中的Include是一个更改模板路径的临时解决方案。它就是这样做的:
$smarty->setTemplateDir($_SERVER['DOCUMENT_ROOT'].'/templates/');
答案 0 :(得分:2)
您提供的内容如下:
$smarty->setTemplateDir('http://usrltowebpage.com/templates');
但你应该提供PATH而不是URL:
$smarty->setTemplateDir('/home/mywebpage.com/public_html/templates');
要更新: 为什么你在使用
$_SERVER['DOCUMENT_ROOT']
? - 你不能把真正的路径作为字符串传递?
答案 1 :(得分:0)
我得到了它的工作。 templates_c,configs和cache文件夹的路径也必须是绝对路径。