отделение JSS от CSS в plone.htmlhead - PullRequest
3 голосов
/ 09 марта 2010

Я использую Plone 3.1.7 в проекте, который требует настройки производительности. Один из твиков требует, чтобы CSS был вверху страницы, а JS - внизу. Однако оба расположены на

<div tal:replace="structure provider:plone.htmlhead" />

В main_template. Как мне разделить эти?

Заранее спасибо

Ответы [ 5 ]

3 голосов
/ 11 марта 2010

Мои коллеги нашли решение:

plone.htmlhead - это просмотр, зарегистрированный продуктом plone.app.layout, который загружает три других представления:

  • plone.resourceregistries.styles
  • plone.resourceregistries.scripts
  • plone.resourceregistries.kineticstylesheets

Я добавил в тег 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 внизу страницы

1 голос
/ 11 марта 2010

Обычно вам не нужно делать это в Plone, поскольку он настроен на асинхронный запуск JS, поэтому он не должен блокировать рендеринг (о чем и совет по производительности).

Если вы вставляете вещи прямо в шаблон, все может измениться, но настройка по умолчанию делает правильные вещи, если я не понимаю вопрос здесь (что может быть в случае:)

0 голосов
/ 29 июля 2011

В заголовке тега дополнительно

<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>

....
но на самом деле я потерял все теги meta , связанные с ключевыми словами!

0 голосов
/ 02 июня 2010

Предложенное выше предложение заменить разделение plone.htmlhead на 3 вьювлета мне не сработало, так как я потерял заголовок страницы (не очень хорошо для SEO). Я предполагаю, что заголовок страницы также обычно включен plone.htmlhead.

Лучшим решением, по-видимому, является использование более новых предложенных выше Products.ResourceRegistries, за исключением того, что строки компоновки немного ошибочны. У меня сработало следующее:

[версия]

...
Products.ResourceRegistries=2.0b3
...
0 голосов
/ 17 марта 2010

Это известная ошибка в некоторых последних версиях Products.ResourceRegistries. Эта проблема исправлена ​​в выпуске 2.02b. Вы можете закрепить эту версию в вашей сборке:

[versions]
    ...
    Products.ResourceRegistries == 2.02b
    ...

затем повторно запустите buildout, и эта проблема исчезнет.

...