2015-09-07 28 views
0

我正在使用一些現有的ezpublish代碼庫。我有兩個擴展extAextB。在extA的模板中,我在tpl中有這個代碼。這一形象的如何在ezpublish傳統中解析圖像路徑?

<img src={"icons/test.png"|ezimage} height="75" width="75" /> 

完整路徑變得 mysite.com/extension/extA/design/extA/images/icons/test.png

現在我把同樣的圖像代碼的extB一個TPL內。但現在的圖像路徑解析爲

mysite.com/design/extB/images/icons/test.png

爲什麼這條路區別? ezpublish中是否有任何設置來控制它?

回答

0

以下鏈接幫助我找到問題所在。 https://doc.ez.no/eZ-Publish/Technical-manual/3.10/Reference/Template-operators/URLs/ezimage

https://doc.ez.no/eZ-Publish/Technical-manual/3.9/Reference/Configuration-files/design.ini/ExtensionSettings/DesignExtensions

如果運營商無法找到「圖像」當前設計的子目錄中指定的文件,它會試圖找到它的「圖像」的後備設計的子目錄或標準設計。

而且

eZ Publish的將尋找在目錄設計 「/擴展/ EXTENSION_NAME /設計/」

所以它首先試圖路徑找到mysite.com/extension/extB/design/extB/images/icons/test.png

並且當圖像不在那裏時它試圖從後備中找到mysite.com/design/extB/images/icons/test.png

我的映像位於第一個路徑,但仍嘗試從後備查找,因爲緩存未更新。清除緩存圖像後,在第一個路徑中找到。

2

在您的擴展的design.ini中,您應該讓ezpublish知道哪個文件夾是設計模板的文件夾。它看起來是這樣的:

[ExtensionSettings] 
DesignExtensions[]=extB 

,並在文件系統中的路徑是這樣的:

{ezpublish_root}/extension/extB/design/extB/.... 
在你的榜樣

我覺得「DesignExtensions []」是空的,它需要的設計文件夾ezpublish自己的根本是ezpublish幾乎所有的回退。

只是爲了讓你的例子更加清晰:

「ezimage」會考慮你的設計文件夾的「圖片」文件夾,如果與該名稱的影像存在,它將路徑返回。

+0

感謝您的回覆。它幫助我找到正確的答案。這實際上是緩存問題。首先它試圖從'design'文件夾裏面找到擴展名。它失敗後會返回到備用或標準目錄。歡迎您光臨 – chanchal118

+0

,但我沒有看到您和我的區別。只是不同的措辭,當然你已經忘記清除緩存:) –

+0

你的話幾乎是相同的,但不相同。不同之處在於你提到了'design.ini'文件的缺失。如果該文件不存在,則默認路徑與擴展名相同。如果圖像文件不在擴展的設計文件夾中,而不是'design.ini'不存在或'DesignExtensions'不存在,則搜索後備。 – chanchal118