조건부로 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.