[英]Unable to get relative paths working in… Smarty :(
我一直堅持將Smarty(我認為是3.1.16)用於大學項目。 我有這個目錄結構:
+ templates/
+ -- application.tpl
+ -- backend.tpl
+ -- backend/
+ ---- blog.tpl
在templates/backend.tpl
內部,我有一個{extends 'application.tpl'}
templates/backend.tpl
{extends 'application.tpl'}
,當我加載backend.php
並呈現此文件時,它可以工作。
在templates/backend/blog.tpl
我有一個{extends '../backend.tpl'}
。 當我訪問backend/blog.php
(加載templates/backend/blog.tpl
)時,出現此錯誤:
Unable to read template file 'application.tpl'
該錯誤的原因可能是什么?
據我所知,此時設置的路徑是相對於設置的模板目錄的,而不是相對於文件本身的。
因此../backend.tpl
成為templates/../backend.tpl
../backend.tpl
如果您設置了一個模板文件夾(“模板”),則在替換時它應該可以工作
{extends '../backend.tpl'}
與
{extends 'backend.tpl'}
您還可以定義多個模板目錄,並通過數組索引(可選)進行標識。 使用setTemplateDir方法為該行為設置聰明
$smarty->setTemplateDir(array(
'frontend' => 'templates',
'backend' => 'templates/backend'
));
現在,您可以在模板中使用smarty文件protokol從特定目錄包含/擴展模板,如下所示
{extends 'file:[backend]blog.tpl'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.