view_preprocessed에서 phtml 템플릿은 언제 어떻게 생성됩니까?


11

var/view_preprocessed/html핵심 모듈과 맞춤 모듈에서에서 생성 된 많은 phtml 파일을 볼 수 있습니다. 공백이 제거 된 템플릿이 모두 사용 된 것 같습니다.

Alan Kent는 Grunt에서 Magento 2 phtml 파일을 어떻게 업데이트합니까? :

PHTML 파일을 "배치"하지 않습니다. 레이아웃 파일의 블록으로 참조되며 서버 측에서 처리됩니다. 따라서 "grunt"는 관련이 없으며 정적 콘텐츠 배포는 이와 관련이 없습니다.

그리고 정적 콘텐츠 배포 및 거친 워크 플로를 분석 할 때 템플릿과 관련된 내용을 찾지 못했기 때문에 여전히 유효합니다.

그러나 이러한 파일은 언제 생성됩니까? 실제로 무슨 일이 일어나고 있고 왜?


내가 알아 낸 것처럼이 파일은 static-content : deploy 명령으로 생성됩니다. 어떤 이유로 변경 사항을 적용하려면 var / view_preprocessed의 모든 파일을 삭제해야합니다.
Kevin Krieger

답변:


9

호출하면 호출됩니다 bin/magento static-content:deploy. \Magento\Deploy\Console\Command\DeployStaticContentCommand::execute()

이 메소드는

    $deployer = $this->objectManager->create(
        'Magento\Deploy\Model\Deployer',
        ['filesUtil' => $filesUtil, 'output' => $output, 'isDryRun' => $options[self::DRY_RUN_OPTION]]
    );
    $deployer->deploy($this->objectManagerFactory, $languages);

로 번역됩니다 \Magento\Deploy\Model\Deployer::deploy. 이 방법의 하단에는 다음이 있습니다.

   foreach ($this->filesUtil->getPhtmlFiles(false, false) as $template) {
        $this->htmlMinifier->minify($template);
        if ($this->output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
            $this->output->writeln($template . " minified\n");
        } else {
            $this->output->write('.');
        }
        $this->count++;
    }

원하는 경우 \Magento\Framework\App\Utility::getPhtmlFiles템플릿을 검색하는 방법을 자세히 살펴볼 수 있습니다 .
짧은 버전 :
그것은 호출 accumulateModuleTemplateFilesaccumulateThemeTemplateFiles같은 클래스에서. 이 메소드는 (결국) glob일부 정규 표현식을 사용하여 모듈과 테마에서 모든 템플릿 파일을 검색하고 일부 정규 표현식을 기반으로 \Magento\Framework\View\Template\Html\Minifier(구현하는 \Magento\Framework\View\Template\Html\MinifierInterface) 축소 합니다. ( minify방법 참조 ).
내가 아직 모르는 것은 이러한 템플릿을 어떻게로드 할 수 있는지입니다. 대부분 템플릿 엔진에 의해로드됩니다. 내가 찾은 경우 다시 게시하겠습니다.

[편집]
축소 된 템플릿을 사용할 때 찾았습니다. 당신은 값으로 설정하면 Store->Configuration->Developer->Template Settings->Minify HTML에 대한 Yes생산 모드에 때를.


답변 해주셔서 감사합니다. Store->Configuration->Developer->Template Settings->Minify HTML여전히 축소 HTML을로드하지 않는 것으로 나타났습니다 . 이것을 막을 수있는 것이 있습니까? 프로덕션 모드에서만 작동합니까?
TheBlackBenzKid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.