パフォーマンスの微調整が必要なプロジェクトで Plone 3.1.7 を使用しています。微調整の 1 つは、CSS をページの上部に配置し、JS をページの下部に配置するように要求します。ただし、どちらも次の場所にあります
<div tal:replace="structure provider:plone.htmlhead" />
main_template で。これらをどのように分割しますか?
前もって感謝します
私の同僚は解決策を見つけました:
plone.htmlhead は製品 plone.app.layout によって登録されたビューレットで、他の 3 つのビューレットをロードします。
HEADタグに以下を入れます。
<div tal:replace="structure provider:plone.resourceregistries.styles" />
そして、一番下に次のとおりです。
<div tal:replace="structure provider:plone.resourceregistries.scripts" />
<div tal:replace="structure provider:plone.resourceregistries.kineticstylesheets" />
終わり!CSS はページの上部に配置され、JS はページの下部に配置されます。
これは Products.ResourceRegistries の一部の最近のバージョンの既知のバグでした。この問題は 2.02b リリースで修正されています。ビルドアウトでそのバージョンを固定できます。
[versions]
...
Products.ResourceRegistries == 2.02b
...
その後、buildout を再実行すると、この問題はなくなります。
head タグに加えて
<div tal:replace="structure provider:plone.resourceregistries.styles" />
入れました
<title tal:define="page_title python: context_state.object_title()"
tal:content="page_title">page title</title>
....
しかし、実際には、キーワードに関連するすべてのメタタグを失ってしまいました。
plone.htmlhead 分割を 3 つのビューレットに置き換えるという上記の提案は、ページ タイトルを失った (SEO には適していない) ため、完全には機能しませんでした。ページタイトルも plone.htmlhead に含まれているのが普通だと思います。
より良い解決策は、ビルドアウト行がわずかに間違っていることを除いて、上記で提案された新しい Products.ResourceRegistries を使用することです。以下は私のために働いた:
[バージョン]
... Products.ResourceRegistries=2.0b3 ...