2012-01-18 53 views
11

我已經徹底查看了Symfony在這個網站上的相關問題,但找不到我需要的答案。如何在Symfony2中找到包含的路徑?

我使用Symfony的2.0.9和PHP 5.3.6和我的文件結構是這樣的:

src/ 
    Blog/ 
    TestBundle/ 
     Resources/ 
     views/ 
      Default/ 
      index.html.twig 
      header.html.twig 

裏面index.html.twig的我:

<div id="header"> 
{% include "BlogTestBundle:Resources:Default:header.html.twig" %} 
</div> 

它保持與

Twig_error_loader示數出來:無法找到模板

不管我用什麼路徑。爲什麼不找到該文件?他們甚至在同一個目錄中!

任何人有任何想法我做錯了什麼?

+3

你應該從路徑中刪除「資源」。 – 2012-01-18 07:16:34

回答

18

樹枝文件包括應遵循以下格式:

FullBundleName:ControllerName:filename 

,如果他們不存在,你也可以修改部分,包/ views目錄下,即對於只是一個文件,你可以使用FullBundleName::filename

所以在你的情況下,使用BlogTestBundle:Default:header.html.twig

+0

**真棒!**謝謝Inori - 這實際上工作。我用 'BlogTestBundle:默認:header.html.twig' 奇怪的是,完整的路徑不工作,雖然。 – varker 2012-01-18 16:02:03

+0

我有同樣的問題,在我的情況下,我寫了'BlogTestBundle:DEFAULT:header.html.twig'(等效),它在我的Windows開發計算機上工作,但代碼在部署服務器上破壞,因爲Linux區分大小寫。只是要注意! – Xocoatzin 2012-11-06 19:10:53

+0

這個答案是正確的,但我也有以下問題: 我試圖包含一個只包含宏的文件,所以我首先使用''.twig''擴展名而不是''.html.twig'命名它,它沒有工作。 看起來你**必須使用''.html.twig''擴展名,否則文件將不會被找到。 – ShinDarth 2016-10-31 14:00:01