【问题标题】:how image path is resolved in ezpublish legacy?ezpublish legacy 中如何解析图像路径?
【发布时间】:2015-09-07 11:50:38
【问题描述】:

我正在研究一些现有的 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 里面有没有设置来控制这个?

【问题讨论】:

    标签: ezpublish


    【解决方案1】:

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

    [ExtensionSettings]
    DesignExtensions[]=extB
    

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

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

    在您的示例中,我认为“DesignExtensions[]”是空的,它将 ezpublish 本身的设计文件夹放在根目录上,这几乎是 ezpublish 中所有内容的后备。

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

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

    【讨论】:

    • 感谢您的回复。它帮助我找到了正确的答案。这实际上是缓存问题。首先它试图从扩展内的design 文件夹中查找。失败的它返回到后备目录或标准目录。
    • 不客气,但我看不出你的和我的有什么不同。只是措辞不同,当然还有你忘记清除的缓存:)
    • 你的话差不多,但又不一样。不同之处在于您谈到缺少design.ini 文件。如果该文件不存在,则默认路径与扩展名相同。当图像文件不在扩展程序的设计文件夹中时搜索后备,而不是在 design.ini 不存在或 DesignExtensions 不存在时搜索。
    【解决方案2】:

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

    如果操作员无法在当前设计的“images”子目录中找到指定的文件,它将尝试在备用设计或标准设计的“images”子目录中找到它。

    eZ Publish 将在目录“/extension/extension_name/design/”中查找设计

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

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

    我的图像在第一个路径中,但由于缓存未更新,它仍试图从后备中查找。清除缓存后发现图片在第一个路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多