개발자 모드에서 필요한 컴파일 명령이 필요합니까?
-
29-09-2020 - |
문제
Magento 2 Developer Mode에서 어떤 편집 명령을 실행할 때 어떤 편지가 지시를 내릴 수 있습니까? 나는 아직 그것을 이해하는지 확실하지 않습니다.
devdocs, 개발자 모드 다음과 같습니다 :
- 정적보기 파일은 캐시되지 않습니다. 그들은
라고 불릴 때마다 Magento Pub / static 디렉토리에 기록됩니다.
PUB / Static의 각 개별 파일이 요청되면 생성되면 setup:static-content:deploy
를 호출 할 필요가 없습니까? 이것은 나의 경험이 모순된다. 또는 파일을 삭제할 수 있으며 재생성 될 수 있습니까? 또한 이미지, CSS 및 JS 파일은 다르게 처리되는 것으로 보입니다.
개발자 모드 문서 페이지는 코드 컴파일에 대해서는 아무 것도 말하지 않지만, 차이가 있지만, setup:di:compile
파일의 모든 변경 후에 di.xml
를 실행할 필요가 없었습니다. 이게 올바르고 그렇다면 코드 생성이 개발자 모드에서 어떻게 작동합니까?
다른 단어 : 캐시, 어떤 명령을 변경해야합니까?
해결책
유료주의 : 개발자 모드 삭제는 해당 폴더에서 마술을 만드는 pub/static
파일을 제거하기 때문에 메커니즘을 끊습니다.
개발자 모드에서 .htaccess
파일을 보관하면 컴파일 명령을 실행할 필요가 없습니다. Magento는 요청 된 즉시 파일에 심볼릭 링크를 만듭니다. 즉, 캐시가 비활성화 된 경우 즉시 정적 자산 변경이 즉시 표시됩니다.
pub/static/.htaccess
또는 pub/static/frontend
대신 삭제할 수 있습니다.
기본 모드 자산은 pub/static/adminhtml
하위 폴더에서 구체화 된 입니다. 즉, 처음 요청시 생성 된 (복사 된 복사, 복사되지 않음)을 의미합니다.
수정하면 캐시가 업데이트되도록 캐시를 플러시해야합니다.
프로덕션 모드 자산은 pub/static
명령을 실행할 때까지 자산이 구체화되지 않았습니다 (요청시 HTTP 오류가 발생합니다).
그것은 도움이되기를 바랍니다.
다른 팁
내 경험에서 개발자 모드에서 코드 / 정적 파일 생성을 위해 명령을 실행할 필요가 없습니다.
정적 파일이 생성되지 않은 경우 또 다른 문제가있을 수 있습니다.
첫눈에 그 두 가지 이유가 있습니다.
- 개발자 모드가 올바르게 작동하지 않습니다.어쩌면 어떤 이유로 정품 인증이 실패했습니다
- pub / static.php의 정적 파일의 다시 쓰기가 작동하지 않습니다
PUB / Static의 각 개별 파일이 요청되면 생성되면
setup:static-content:deploy
를 호출 할 필요가 없습니까?이것은 나의 경험이 모순된다.또는 파일을 삭제할 수 있으며 재생성 될 수 있습니까?
예.그러나 내 경험에 따르면 이것은 대부분의 시간이 작동하지 않습니다.버그 일 수 있습니다.더 나은 솔루션은 pub/static
컨텐츠를 삭제하고 정적 파일 (JS, CSS, HTML 등)을 변경할 때마다 정적 컨텐츠를 다시 배포하는 것입니다.
내 자신의 질문에 대한
세 가지 다른 모드 (자료 : Magento U 펀더멘털 과정) 사이를 명확히하기 위해서. 굵은 글씨로 질문과 관련된 구체적인 점이 있습니다.
개발자 모드
- 정적 파일 구체화가 활성화되지 않습니다.
- 브라우저에 표시된 예외
- 오류 처리기에서 Throw되는 예외는 기록되지 않았습니다.
- 시스템 로그에
var/report
에 로그인합니다.
개발중인 동안 개발자 모드를 사용해야합니다. 사용자 지정 또는 확장 기능. 이 모드에 대한 주요 이점은 다음과 같습니다 오류 메시지가 표시됩니다. 그것은 생산에 사용해서는 안됩니다 성능에 미치는 영향으로 인해. 개발자 모드에서 정적보기 파일은 요청할 때마다 생성됩니다. 그들은에 기록됩니다
pub/static
디렉토리이지만이 캐시는 사용되지 않습니다. 이것은 큰 것입니다 성능 영향이지만 개발자가 파일을 볼 수있는 변경 사항 즉시 볼 수 있습니다.잡히지 않은 예외는 브라우저에 표시되기보다는 브라우저에 표시됩니다. 기록. 이벤트 가입자가 될 수 없을 때마다 예외가 발생합니다. 호출되었습니다.
시스템 로깅은이 모드에서 매우 상세합니다.
생산 모드
-
생산 시스템의
- 배치 단계; 최고의 성능
- 예외는 사용자에게만 로그에만 쓰여지지 않습니다.
- 이 모드는 정적 파일 구체화를 비활성화합니다.
- Magento Docroot는 읽기 전용 권한을 가질 수 있습니다.
프로덕션 모드에서 Magento를 실행하면 A에 배포되면 프로덕션 서버.
생산 모드는 Magento 2에서 가장 높은 성능을 제공합니다.
이 모드의 가장 중요한 측면은 오류가 기록 된 것입니다. 파일 시스템과 사용자에게 표시되지 않습니다. 이 모드에서, 정적보기 파일이 요청되면 즉시 생성되지 않습니다. 대신
var/report
디렉토리에 배포되어야합니다. 명령 줄 도구. 생성 된 페이지에는 직접 링크가 포함됩니다 배포 된 페이지 리소스에.파일보기를 변경하려면 배포 도구를 다시 실행해야합니다.
보기 파일이 CLI 도구를 사용하여 배포되므로 웹 사용자 쓰기 액세스가 필요합니다. Magento
pub/static
디렉토리 읽기 전용 권한을 가질 수 있습니다.이 권한은보다 안전한 설정입니다. 공개적으로 액세스 할 수있는 서버.
기본 모드
- 다른 모드가 지정되지 않은 경우
- 는 사용자의 예외를 숨 깁니다. 를 로그 파일에 씁니다.
- 정적 파일 구체화가 활성화됩니다.
- 는 권장되지 않음 / 생산을 위해 최적화되지 않음 : 캐싱은 성능에 부정적으로 충격 을가합니다.
이름에서 알 수 있듯이 기본 모드는 Magento 소프트웨어가 작동하는 방법입니다. 다른 모드가 지정되지 않은 경우
이 모드에서는 Errros가
pub/static
의 파일에 기록되며 사용자에게 표시되지 않습니다. 정적보기 파일은 파리에 구체화됩니다. 그리고 캐시 된 다음개발자 모드와 달리 파일 변경 사항이 표시되지 않습니다. 생성 된 정적보기 파일이 지워질 때까지
기본 모드는 프로덕션 환경에 대해 최적화되지 않습니다. 주로 정적 파일의 불리한 성능 영향 때문에 그들을 생성하고 배치하는 것이 아니라 비행기에 구체화되었다. 미리 .
다른 단어, 비행 및 캐싱에 정적 파일을 만듭니다. 정적을 사용하여 그들을 생성하는 것보다 성능의 영향력이 더 높습니다. 파일 생성 명령 줄 도구.