我無法讓smarty從子目錄顯示tpl文件。來自子目錄的Smarty顯示
在根文件中的php文件工作得很好,但如果php文件在子文件夾中,則顯示方法不起作用。
我發現smarty中的模板路徑是相對路徑。所以對我來說,顯示不起作用是有道理的,因爲路徑是錯誤的。
所以我設置的模板路徑
$smarty->setTemplateDir($_SERVER['HTTP_HOST'].'/templates');
這是模板文件夾是根目錄的一部分。
但它的stoll不工作。
任何想法? :/
編輯:
全碼:
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/');
好的,我改變了。所以我拋棄了我的模板路徑,它現在是/ var/www/my_project/templates /,這是正確的。 但顯示$ smarty-> display('index.tpl');仍然不起作用,即使它位於模板目錄的根目錄中。 :/ –
var_dump($ smarty-> getTemplateDir());看看它是否設置正確 – violator667
這是正確的。正如我上面提到的,現在的路徑是/ var/www/my_project/templates /。但是顯示tpl仍然不起作用 –