정적 보기 파일 배포
정적 보기 파일 배포 명령을 사용하면 Commerce 소프트웨어가 프로덕션 모드에 대해 설정되어 있을 때 Commerce 파일 시스템에 정적 파일을 쓸 수 있습니다.
정적 보기 파일 이라는 용어는 다음을 참조합니다.
- "정적"은 사이트에 대해 캐시할 수 있음을 의미합니다(즉, 파일이 동적으로 생성되지 않음). LESS에서 생성된 이미지 및 CSS를 예로 들 수 있습니다.
- "뷰"는 프레젠테이션 레이어(MVC)를 참조합니다.
정적 보기 파일은 <magento_root>/pub/static
디렉터리에 있으며 일부는 <magento_root>/var/view_preprocessed
디렉터리에도 캐시됩니다.
정적 보기 파일 배포는 다음과 같이 애플리케이션 모드의 영향을 받습니다.
이 항목에서 설명한 명령을 사용하여 정적 보기 파일을 수동으로 Commerce 파일 시스템에 작성해야 합니다. 그 후에는 취약성을 제한하고 실수로 또는 악의적으로 파일을 덮어쓰는 것을 방지하기 위해 권한을 제한할 수 있습니다.
정적 보기 파일을 배포하려면:
-
Commerce 서버에 (으)로 로그인하거나 파일 시스템 소유자로 전환합니다.
-
.htaccess
파일을 제외한<magento_root>/pub/static
의 내용을 삭제합니다. 이 파일을 삭제하지 마십시오. -
정적 보기 파일 배포 도구
<magento_root>/bin/magento setup:static-content:deploy
을(를) 실행합니다.note info INFO 관리자에서 정적 보기 파일 병합을 사용하도록 설정하는 경우 pub/static
디렉터리 시스템에 쓸 수 있어야 합니다.명령 옵션:
code language-bash bin/magento setup:static-content:deploy [<languages>] [-t|--theme[="<theme>"]] [--exclude-theme[="<theme>"]] [-l|--language[="<language>"]] [--exclude-language[="<language>"]] [-a|--area[="<area>"]] [--exclude-area[="<area>"]] [-j|--jobs[="<number>"]] [--no-javascript] [--no-css] [--no-less] [--no-images] [--no-fonts] [--no-html] [--no-misc] [--no-html-minify] [--no-parent] [-f|--force]
다음 표에서는 이 명령의 매개 변수와 값에 대해 설명합니다.
<languages>
en_US
입니다.)다음을 실행하여 목록 찾기:
bin/magento info:language:list
--language (-l)
예:
--language en_US --language es_ES
--exclude-language
--theme <theme>
예:
--theme Magento/blank --theme Magento/luma
--exclude-theme <theme>
예:
--exclude-theme Magento/blank
--area (-a)
adminhtml
및 frontend
입니다. 기본값은 all 입니다.예:
--area adminhtml
--exclude-area
--symlink-locale
--content-version=CONTENT-VERSION
--no-javascript
--no-css
--no-less
--no-images
--no-fonts
--no-html
--no-misc
--no-html-minify
-s <quick|standard|compact>
배포 전략을 정의합니다. 둘 이상의 로컬이 있는 경우에만 이 옵션을 사용합니다.
--no-parent
--force (-f)
<languages>
과(와) --language
의 값을 모두 지정하면 <languages>
이(가) 우선합니다.예시
다음은 몇 가지 예제 명령입니다.
테마 및 HTML 축소 제외
다음 명령은 미국 영어(en_US
) 언어에 대한 정적 콘텐츠를 배포하고 Commerce과 함께 제공된 Luma 테마를 제외하며 HTML 파일을 축소하지 않습니다.
bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify
샘플 출력:
Requested languages: en_US
Requested areas: frontend, adminhtml
Requested themes: Magento/blank, Magento/backend
=== frontend -> Magento/blank -> en_US ===
=== adminhtml -> Magento/backend -> en_US ===
...........................................................
... more ...
Successful: 2055 files; errors: 0
---
New version of deployed files: 1466710645
............
Successful: 1993 files; errors: 0
---
다음 명령은 표준 배포 전략을 사용하여 4개의 작업이 있는 JavaScript만 배포합니다.
bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4
다음 명령은 3개의 작업과 빠른 배포 전략으로 CSS 및 LESS만 배포합니다.
bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3
한 테마 및 한 영역에 대한 정적 보기 파일 생성
다음 명령은 글꼴을 생성하지 않고 모든 언어, 프론트엔드 영역만, Commerce Luma 테마만 정적 보기 파일을 생성합니다.
bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma
샘플 출력:
Requested languages: en_US
Requested areas: frontend
Requested themes: Magento/luma
=== frontend -> Magento/luma -> en_US ===
...........................................................
... more ...
........................................................................
Successful: 2092 files; errors: 0
---
New version of deployed files: 1466711110
Commerce을 설치하지 않고 정적 보기 파일 배포
중요한 프로덕션 시스템에서 빌드 프로세스를 수행하지 않도록 별도의 비프로덕션 환경에서 배포 프로세스를 실행할 수 있습니다.
이렇게 하려면 다음 단계를 수행합니다.
bin/magento app:config:dump
을(를) 실행하여 프로덕션 시스템에서 구성을 내보냅니다.- 내보낸 파일을 비프로덕션 코드 베이스에 복사합니다.
- 정적 보기 파일 배포:
bin/magento setup:static-content:deploy
정적 보기 파일 배포 도구 문제 해결
먼저 Commerce 소프트웨어를 설치하십시오. 그렇지 않으면 정적 보기 파일 배포 도구를 실행할 수 없습니다.
증상: 정적 보기 파일 배포 도구를 실행할 때 다음 오류가 표시됩니다.
ERROR: You need to install the Commerce application before running this utility.
솔루션:
다음 단계를 수행하십시오.
- 명령줄을 사용하여 Commerce 소프트웨어를 설치합니다.
- 응용 프로그램 서버에 파일 시스템 소유자로 로그인하거나 파일 시스템 소유자로 전환합니다.
.htaccess
파일을 제외한<app_root>/pub/static
디렉터리의 내용을 삭제합니다. 이 파일을 삭제하지 마십시오.- 정적 보기 파일 배포:
bin/magento setup:static-content:deploy
정적 콘텐츠 배포 도구를 사용자 지정하는 개발자를 위한 팁
정적 콘텐츠 배포 도구의 사용자 지정 구현을 만들 때는 클라이언트에서 사용할 수 있어야 하는 파일에 대해 작은 단위의 파일 작성만 사용합니다. 비원자 파일 쓰기를 사용하는 경우 해당 파일이 부분 콘텐츠와 함께 클라이언트에 로드될 수 있습니다.
이를 원자화하는 옵션 중 하나는 임시 디렉토리에 저장된 파일에 쓰고 쓰기가 끝난 후 대상 디렉토리(클라이언트가 로드되는 위치)로 복사하거나 이동하는 것입니다. 파일에 쓰는 방법에 대한 자세한 내용은 php fwrite을 참조하세요.