Magento2 : CSS 파일을 수정하는 모범 사례


14

CSS 파일을 수정하고 싶습니다 pub/static/frontend/Magento/luma/en_US/css/styles-l.css.
처음에는이 파일이 pub / static 폴더에없고 파일에 있습니다.

vendor/magento/theme-frontend-blank/web/css/styles-l.less (it's styles-l.less)

을 사용하여 정적 내용을 딥하면 php bin/magento setup:static-content:deploy관련된 pub / static에 2 개의 파일이 생성됩니다.
1. pub/static/frontend/Magento/luma/en_US/css/styles-l.less
2. pub/static/frontend/Magento/luma/en_US/css/styles-l.css

나는 백업 개발자이며 모듈을 개발하는 동안 pub / static에있는 모든 것을 삭제하는 경향이 있습니다 (.htaccess 제외). 그래서 나에게 직접 수정하는 가장 좋은 옵션은 아닌 것 같습니다 pub/static/frontend/Magento/luma/en_US/css/styles-l.css.

이 경우 위의 CSS 파일을 수정하는 가장 좋은 방법은 무엇입니까?
1. 나는 수정 할까 pub/static/frontend/Magento/luma/en_US/css/styles-l.less또는
2. 나의 이해는 내가 모든 것을 삭제할 수 잘못 pub/static(개발 중)을 내가 수정해야 pub/static/frontend/Magento/luma/en_US/css/styles-l.css하고 그것을 삭제하지 않았다.

답변:


19

pub / * 또는 vendor / * 디렉토리에있는 파일을 편집 / 수정해서는 안됩니다. Pub은 배포 용이며 공급 업체는 기본 구조용이며 템플릿 또는 사용자 지정 모듈을 통해 재정의합니다. 대신 :

  • app / design / frontend / {vendor} / {yourTheme} / 내에 새로운 테마를 만듭니다. 공백 또는 루마 테마를 사용할 수 있습니다. Blank에서 상속되는 새 테마를 만들 수도 있습니다 (상속은 theme.xml에 정의 됨). 이미 일부 테마를 사용중인 경우이 단계를 건너 뛰십시오.
  • 캐시를 지우거나 시스템을 업그레이드 할 때 변경 사항이 계속 표시되고 대체되지 않도록 테마 내에서 .less를 편집하십시오.
  • grunt를 사용하여 .less를 배포 파일로 컴파일하십시오.
  • 또한 테마 .less 파일 내에서 스타일을 지정하도록 소스 맵을 설정하여 생산성을 높일 수 있습니다.

유용한 참고 자료 :


감사합니다. 테마를 사용 Templatemonster/theme하고 styles-l.less있으며 테마 에 없습니다. 내가 복사해야 vendor/magento/theme-frontend-blank/web/css/styles-l.lessapp/design/frontend/Templatemonster/theme/web/css/styles-l.less사용 / 수정?
amitshree

2
아닙니다. Templatemonster / theme-styles-*. less에서 적은 파일을 편집해야합니다. pub 디렉토리의 적은 파일은 이미 테마 및 기타 리소스에서 컴파일 된 파일이며 수정 / 변경되지 않습니다. TM 테마 내에서 파일 편집을 마치면 grunt를 실행하여 pub 폴더에 배포 할 최종 리소스로 파일을 컴파일하십시오. 또한 소스 맵을 사용하여 테마에서 적은 파일을 가리킬 수 있습니다.
g5wx 2016 년

다시 감사합니다. 내가 수업 존재의 속성을 수정해야하는 경우 그냥, 그것을 명확히 styles-l.lessmagento/theme-frontend-blank내가 사용 / 내 TM 테마에의 (또는 신규)에 CSS 파일을 해당 클래스를 덮어하고 그에 따라 수정해야합니다 테마. 않습니다 magento/theme-frontend-blank주제와 동일한 방식으로 작동 base/defaultMagento1에서 작업 한 테마를?
amitshree

1
예, 변경하고자하는 변경 사항은 템플릿 내에 반영되어 수정 범위가 해당 템플릿 내에서 로컬로 유지되고 업그레이드시 재정의되지 않습니다. M2의 빈 템플릿은 M1의 기본과 같은 기본 기능을 가지고 있습니다. 즉, 기본 정의가 이미 생성되어 있고 확장 테마는 수정하지 않은 요소에 대한 대체를 가질 수 있습니다.
g5wx 2016 년

4

이 접근법은 저에게 효과적이었습니다.

.less 파일에서 필요한 사항을 변경 한 후 다음 명령을 실행하십시오.

php bin/magento setup:upgrade

php bin/magento cache:flush

3

다른 테마 인 경우 다음을 구성해야합니다.

module.exports = {
    blank: {
        area: 'frontend',
        name: 'Magento/blank',
        locale: 'en_US',
        files: [
            'css/styles-m',
            'css/styles-l',
            'css/email',
            'css/email-inline'
        ],
        dsl: 'less'
    },
    luma: {
        area: 'frontend',
        name: 'Magento/luma',
        locale: 'en_US',
        files: [
            'css/styles-m',
            'css/styles-l'
        ],
        dsl: 'less'
    },

    porto: {
        area: 'frontend',
        name: 'Smartwave/porto',
        locale: 'zh_Hans_CN',
        files: [
            'css/styles-m',
            'css/styles-l'
        ],
        dsl: 'less'
    },

    backend: {
        area: 'adminhtml',
        name: 'Magento/backend',
        locale: 'en_US',
        files: [
            'css/styles-old',
            'css/styles'
        ],
        dsl: 'less'
    }
};

2
dev / tools / grunt / configs / theme.js 파일에서
Patrick-Peng

3

이것은 magento2가 CSS 파일을 처리하는 방법에 대한 순서도입니다.

여기에 이미지 설명을 입력하십시오

출처 : Inchoo


0

나는 실행을 제안 할 것이다

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy

아시다시피

php bin/magento setup:upgrade

캐시 및 정적 컨텐츠를 정리하고

php bin/magento setup:static-content:deploy 

<mageroot>/pub폴더에 모든 테마를 배포 합니다. 이 명령은 상점의 처음로드를 크게 줄입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.