Plone 4.3.3 で Dexterity ベースの Plone Default Types を有効にした後、問題に遭遇しました。いくつかのサブサイト (INavigationRoot インターフェイスがアクティブ化されたフォルダー) がありました。これらの各サブサイトにはカスタム ロゴがあり、logo.png
ナビゲーション ルートとして機能する各フォルダーに格納されています。Dexterity ベースの Plone のデフォルト タイプを有効にするまでは、問題なく動作していました。その時点で、すべてのカスタム ロゴは、ベースの Plone サイトに表示されているものに置き換えられました。
問題を調査したところ、レンダリングされた HTML で、サブサイトのロゴが絶対 URL であることに気付きました。現在のフォルダーまたは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 サイトとサブサイトと同様にロゴをハードコーディングします。すべてが再び機能しています。
明らかに、問題の回避策がありますが、「適切な」修正とは何ですか?