在 Plone 4.3.3 中激活基于敏捷的 Plone 默认类型后,我遇到了一个问题。我有许多子站点(激活了 INavigationRoot 界面的文件夹。)每个子站点都有一个自定义徽标,该徽标存储logo.png
在每个用作导航根的文件夹中。它工作得很好,直到我激活了基于 Dexterity 的 Plone 默认类型。那时,所有自定义徽标都替换为基本 Plone 网站上显示的徽标。
当我调查这个问题时,我注意到在呈现的 HTML 中子站点徽标是绝对 URL。我期待对 logo.png 的不合格引用,它可以在当前文件夹或 .png 的默认位置中找到portal_skins/custom
。
徽标在 Sunburst 主题的属性中定义,位于 buildout_cache/plonetheme.sunburst-1.4.6-py2.7.egg/plonetheme/sunburst/skins/sunburst_styles/base_properties.props
logoName:string=logo.png
logoName
由中LogoViewlet
定义使用buildout_cache/plone.app.layout-2.3.12-py2.7.egg/plone/app/layout/viewlets/common.py
无论出于何种原因,自定义徽标都被忽略了,而子站点则呈现基本徽标。
粗略的解决方案:编辑buildout-cache/eggs/plone.app.layout-2.3.11-py2.7.egg/plone/app/layout/viewlets/logo.pt
改变:
<img src="logo.jpg" alt=""
tal:replace="structure view/logo_tag" /></a>
至:
<img src="logo.png" alt="" /></a>
这会忽略皮肤属性,将徽标硬编码logo.png
到服务器上的所有 Plone 站点和子站点中。所有人都在重新工作。
显然我有一个解决该问题的解决方案,但“正确”的解决方法是什么?