如何从Diazo规则文件中链接它们内部的URL?

时间:2015-07-26 03:36:58

标签: themes plone diazo

如果在HTML模板中设置了图像的URL,则会更新URL以引用主题文件夹中的文件。例如,

<img src="image.png" />

替换为:

<img src="http://localhost:8080/mysite/++theme++mytheme-theme/image.png" />

但是,如果我按照Diazo规则编写:

<replace css:content="#some-class">
   <div id="#some-class"><img src="image.png" /></div>
</replace>

图片的网址未更新。如何在正确引用图像的地方编写重氮规则。我想在模板HTML文件中使用<img src="path/image.png">引用此图像。然而,目前尚不清楚要放什么而不是路径。我注意到路径不能是绝对路径,因为它取决于站点域。此外,它不能是相对路径,因为它取决于站点中每个页面的路径。可能有一个特定的关键字来引用主题文件夹会很有用。例如,<img src="$themeFolder/image.png">。存在这样的关键字?

1 个答案:

答案 0 :(得分:4)

您可以在主题的manifest.cfg文件中创建XSLT参数。只需添加一个节:

[theme:parameters]
theme_base_url = string:${portal_state/portal_url}/++theme++mytheme-theme/

然后您可以在规则文件中使用它:

<replace css:content="#some-class">
   <div id="#some-class">
     <img><xsl:attribute name="src"><xsl:value-of select='$theme_base_url' />image.png</xsl:attribute></img>
  </div>
</replace>