조건부로 CSS 자산을 추가하려면 "ifconfig"를 사용하십시오.


10

ifconfigMagento 2에서 Magento 1과 유사한 CSS 자산을 조건부로 추가 하는 데 사용할 수있는 방법이 있습니까? 다음은 마 젠토 1의 예입니다.

<action ifconfig="config_path/group/field" method="addItem">
    <type>skin_css</type><name>css/styles.css</name>
</action>

Magento 2에서 이와 같은 것을 시도했지만 작동하지 않습니다.

<head>
    <css src="css/styles.css"
        ifconfig="config_path/group/field" />
</head>

ifconfig프론트 엔드에 속성 만 표시됩니다 .

<link rel="stylesheet" type="text/css" 
    ifconfig="config_path/group/field" 
    href="http://example.com/pub/static/frontend/Magento/luma/en_US/css/styles.css" />

Magento 2에 해당하는 것이 있습니까?

답변:


3

현재 head.xsd개발 브랜치에서 정의를 보는 것이 불가능한 것 같습니다 .

https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/View/Layout/etc/head.xsd#L9

Require Js Module과 같은 것을 할 수 있습니다 : https://github.com/magento/magento2/blob/develop/app/code/Magento/RequireJs/Block/Html/Head/Config.php

여기에서 require config 및 mixin이 require.js 파일 바로 뒤에 삽입됩니다.

조건이있는 이와 같은 CSS 파일을 추가 할 수 있습니다.

비슷한 문제로 여기에서 문제를 발견했지만 답변을 얻지 못했습니다 : https://github.com/magento/magento2/issues/2004


1

구성을 사용하여 클래스를 본문에 추가 할 수 있으며 CSS 스타일은 해당 클래스에서만 작동합니다.

<reference name="root">
    <action method="addBodyClass" ifconfig="section/group/isactive_full_homepage">
        <classname>home-full-page</classname>
    </action>
</reference>

이 작업을 수행 할 수 없습니까?
— 00-BBB

0

이 다른 스레드를 살펴보십시오.

/programming/32582704/magento-2-get-scopeconfig-values

그는 액션 노드 대신 블록 노드에 적용했을 수 있습니다.

추신 : 캐시를 비우고 다시 컴파일하십시오.


blockType 위해 실제로 XSD에 정의되어 github.com/magento/magento2/blob/develop/lib/internal/Magento/...를 . @ maginfortis ifconfig를 CSS 노드에 추가하려고 했습니까? 유효성 검사 오류가 발생하면 xsd에 추가하지 않았는지 또는 실제로이 매개 변수가 구현되어 있지 않은지 확인하기 위해 ifconfig를 head.xsd 언급에 추가하여 시도 할 수 있습니다.
— David Verholen

네, 맞습니다. CSS에서 확인하고있었습니다. 플러그인을 정의하여 "around"메소드 래퍼를 사용하는 옵션이있을 수 있습니다.
— Phoenix128_RiccardoT

1
이것은이 방법으로 작동 할 수 있습니다 : github.com/magento/magento2/blob/develop/lib/internal/Magento/… . 하지만 당신은 항상 다른 모든 플러그인이 방법에 듣고이 플러그인도 실행되지 않을 것이다 후에 실행하기 때문에 (이것은이 경우 합법적 인 것 같다 경우에도) 계속 실행하지 않도록 각별히주의해야한다
— 데이비드 Verholen

또 다른 옵션은 애프터 플러그인을 사용하여 html 출력에서 ​​필터링 할 수 있습니다. 어떻게 생각하십니까?
— Phoenix128_RiccardoT

이 모든 (또한 내 대답은) 그것을 정말 "오른쪽"하지 않습니다 생각하지 않습니다) 내가 궁금해 그들이이 일을 다른 방법을 생각하거나 실수로 밖으로은 ifconfig를 떠나는 경우
— 데이비드 Verholen을
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.