문제

성능 조정이 필요한 프로젝트에서 Plone 3.1.7을 사용하고 있습니다. CSS가 페이지 상단에 있고 JS는 맨 아래에 있어야하는 조정 요청 중 하나입니다. 그러나 둘 다에 있습니다

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

main_template에서. 이 것들을 어떻게 분할합니까?

미리 감사드립니다

도움이 되었습니까?

해결책

내 직장 동료들은 해결책을 찾았습니다.

Plone.htmlhead는 다른 3 개의 뷰렛을로드하는 Product Plone.app.layout에서 등록한 뷰렛입니다.

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

다음을 헤드 태그에 넣었습니다.

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

그리고 바닥의 다음은 다음과 같습니다.

<div tal:replace="structure provider:plone.resourceregistries.scripts" />
<div tal:replace="structure provider:plone.resourceregistries.kineticstylesheets" />

완료! CSSS는 페이지 상단과 페이지 하단의 JSS에 있습니다.

다른 팁

JS를 비동기 적으로 트리거하도록 설정되어 있기 때문에 일반적으로 Plone 으로이 작업을 수행 할 필요는 없으므로 렌더링을 차단하지 않아야합니다 (이는 성능 팁이 무엇인지).

템플릿에 직접 물건을 삽입하면 상황이 변경 될 수 있습니다. 그러나 기본 설정은 여기서 질문을 오해하지 않는 한 올바른 일을합니다 (그렇습니다 :)

이것은 최근의 일부 버전의 제품에서 알고 버그였습니다. Resourceregistries이 문제는 2.02b 릴리스에서 수정되었습니다. 빌드 아웃에서 해당 버전을 고정 할 수 있습니다.

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

그런 다음 빌드 아웃을 다시 실행하면이 문제가 사라집니다.

Plone.htmlhead 분할을 3 개의 뷰렛으로 대체하는 위의 제안은 페이지 제목을 잃어 버렸기 때문에 완전히 효과가 없었습니다 (SEO에는 좋지 않음). 페이지 제목은 일반적으로 plone.htmlhead에 포함되어 있다고 가정합니다.

더 나은 솔루션은 새로운 제품을 사용하는 것 같습니다. Resourceregistries는 위에서 제안한 것입니다. 다음은 저를 위해 일했습니다.

버전

...
Products.ResourceRegistries=2.0b3
...

헤드 태그에도

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

....
그러나 사실 나는 모든 것을 잃었습니다 메타 키워드와 관련된 태그!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top