ezpublish legacy 中的图像路径是如何解析的?

how image path is resolved in ezpublish legacy?

我正在处理一些现有的 ezpublish 代码库。我有两个分机 extAextB。在 extA 的模板中,我在 tpl 中有此代码。

<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 中是否有任何设置可以控制它?

在扩展的 design.ini 中,您应该让 ezpublish 知道哪个文件夹是设计模板的文件夹。它看起来像这样:

[ExtensionSettings]
DesignExtensions[]=extB

在文件系统中,路径如下所示:

{ezpublish_root}/extension/extB/design/extB/....

在你的例子中,我认为 "DesignExtensions[]" 是空的,它在根目录下使用 ezpublish 本身的设计文件夹,这几乎是 ezpublish 中所有内容的后备。

只是为了让你的例子更清楚:

"ezimage" 将查看您的设计文件夹的 "images" 文件夹,如果具有该名称的图像存在,它将 return 找到它的路径。

以下链接帮助我找到了问题所在。 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

If the operator is unable to find the specified file within the "images" subdirectory of the current design, it will attempt to locate it in the "images" subdirectory of the fallback designs or the standard design.

eZ Publish will look for designs in the directory "/extension/ extension_name/design/"

所以它首先尝试在路径mysite.com/extension/extB/design/extB/images/icons/test.png

中查找

当图像不存在时,它会尝试从回退中找到 mysite.com/design/extB/images/icons/test.png

我的图像在第一条路径中,但由于缓存未更新,它仍试图从回退中查找。清除缓存图像后在第一个路径中找到。