簡體   English   中英

無法使相對路徑在…Smarty中起作用:(

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM