2017-02-23 3 views
0

특정 페이지에만 애셋이로드되는 Odoo의 웹 사이트에 CSS/js 애셋을 통합하는 가장 좋은 방법은 무엇입니까?페이지 (Odoo)로 CSS 자산 관리

사례 및 문서에서 자산을 Odoo의 website.assets_frontend에 덤핑하는 방법에 대해 설명하고 있지만 실제로는 온라인에서 찾은 웹 사이트 템플릿을 사용하고 싶습니다. css 클래스를 만들고 충돌을 식별하십시오.

페이지 자체가 한 가지 일이지만 내 기존 페이지의 CSS가 모두 손상되는 경우.

나는 이와 같은 기술을 사용할 생각이었습니다. 웹 사이트 자산 여부에 CSS를 포함할지 여부를 결정하기 위해 if 문을 사용하여

t-if="request.httprequest.path.startswith('/page/path/')"

. 사람이 그들이 포함 된 방법으로 Odoo의 프론트 엔드 자산으로 CSS를 통합하는 방법에 대한 제안을 할 것인지

<odoo> 
    <data> 
     <template id="page_style" name="Page Style" inherit_id="website.assets_frontend"> 
      <xpath expr="link[last()]" position="after"> 
       <t t-if="request.httprequest.path.startswith('/page/path/')"> 
        <link href="/addon_name/path/to/css/style.css" rel="stylesheet" type="text/css"/> 
       </t> 
      </xpath> 
     </template> 
    </data> 
</odoo> 

어쨌든, 나는 그것을 감사하겠습니다. 당신이 특정 CSS/JS가에 적용 할 템플릿에

<head> 
     <link href="/addon_name/path/to/css/style.css" rel="stylesheet" type="text/css"/> 
</head> 

을 : 당신이 실제로 삽입되는 수행 할 수있는

답변

0

. 구체적인 예를 보려면 addons/website_google_map/views/google_map_templates.xml

head 태그의 내용이 해당 템플릿에 렌더링 될 최종 HTML의 head 태그 안에 삽입됩니다.

프레임 워크 자체에 의해 스트리밍 및 사용 된 것으로 보이므로 지금까지 아무런 문제없이 직접 사용하고 있습니다. 내가 이해할 수있는대로 특정 CSS를 적용 할 템플릿에서만 작동하는 자바 스크립트 위젯을 만들 수도 있습니다. 그러나 위의 해결책은 나에게 깨끗해 보인다.

+0

js 자산에서 동일한 작업을 수행 할 수 있습니까? 따라서 모든 ''애셋이 결합되어 하나의 head 태그에서 클라이언트에게 제공됩니다. –

+0

나는 이것을 점검하고 내일 정확하게 이것을 표시 할 것이다. –

+0

George, 프론트 엔드 템플릿에서이 작업을 수행했습니다. 내 템플릿에 ''을 추가했습니다. 이상하게도''태그가 제거되었고 CSS 링크가 '

'요소의 맨 위에 위치했습니다. 이제 기술적으로는 내 페이지에 적절한 CSS가 있지만 ''요소에 CSS를 추가하지 않고 CSS를 프론트 엔드 애셋에 추가하지 않기 때문에 필요합니다. ''요소에 포함되어 있지 않다는 사실은 큰 문제는 아니지만 자산 패키지는 요청을 최소화하여 속도를 향상시킵니다. –