Magento 2의 로컬 설치는 pub / static 폴더에 파일을 생성하지 않습니다 문제를 해결하려고 몇 시간을

방금 MAMP를 통해 로컬로 샘플 데이터 (웹 사이트에서 다운로드하고 작곡가와 함께 설치되지 않은)로 Magento 2 Community Edition을 설치했습니다. 설치 과정이 성공적으로 완료되었지만 .htaccess를 제외한 pub / static 폴더의 모든 파일이 누락되었습니다. 이것은 모든 CSS, js 등이 프론트 엔드와 백엔드 모두에 대해 404를 반환한다는 것을 의미합니다.

운 없이이 문제를 해결하려고 몇 시간을 보냈습니다. 이것이 내가 지금까지 한 일입니다.

  • 변경 Options Indexes FollowSymLinks AllowOverride/MAMP/conf/apache/httpd.conf에서 ‘모든’에서 ‘없음’에서 다시 시작 MAMP
  • LoadModule rewrite_module modules/mod_rewrite.sohttpd.conf에서 주석 처리가 제거 되었는지 확인하십시오.
  • MAMP에서 개발 도메인 (magento.dev) 설정
  • php bin/magento setup:static-content:deploy터미널을 사용하여 magento.dev 루트에서 실행 을 시도했습니다 . 그러나 이것은 다음을 반환합니다.

치명적인 오류 : 64 행의 /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php에 ‘Locale’클래스가 없습니다.

  • 주석을 제거하고 RewriteBase /magento.dev 루트 디렉토리의 .htaccess-file에서 RewriteBase를 로 변경했습니다 .
  • 개발 모드에서 마 젠토 설정
  • 캐시를 수동으로 지우고 php bin/magento setup:static-content:deploy다시 실행

대부분의 가이드 및 포럼 게시물은 나에게 실행하도록 지시합니다. php bin/magento setup:static-content:deploy하지만 올바르게 수행하고 있는지 확실하지 않습니다.

운영체제 : OSX 10.11.2

MAMP 버전 : 3.5

PHP 버전 : 7.0

아파치 버전 : 2.4.16

MySQL 버전 : 5.6.25

도움을 주시면 감사하겠습니다.



답변

솔루션 # 1 (XML 파일을 편집하려는 경우)

에서 Magento 2 zip을 다운로드 하고 phpmyadmin 에서 magentocommerce.com/downloaddb 를 생성 하고 htdocs 폴더 에서 zip을 추출하고 싶습니다 . Magento 2를 설치하지만 상점 URL 및 관리 URL에서 localhost 사용 127.0.0.1 을 사용 하지 마십시오 . 설치가 완료 되면 magento를 실행 하지 마십시오 .

이제 Magento 2의 캐시와 세션을 지우거나 삭제하려고합니다. 다음 경로로 이동하여 모든 것을 삭제하십시오.

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Magento 2가 프로덕션 모드에 있지 않으면 로컬 서버에서 일부 정적 리소스에 대한 심볼릭 링크를 만들려고 시도합니다. ROOT > app > etc > di.xml파일 을 편집하여 Magento 2의 동작을 변경해야 합니다. 열고 di.xml찾기, 좋아하는 코드 편집기에 virtualType name="developerMaterialization"절을 참조하십시오. 아래 섹션에서 <item name="view_preprocessed" xsi:type="object">수정해야 할 항목 을 찾을 수 있습니다. 다음 내용을 변경하여 수정할 수 있습니다.

Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink

에:

Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

이제 마지막 단계에서 생성 된 오래된 파일도 삭제하십시오. ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

MAMP, EasyPHP DevServer, Xampp 및 Wampp를 사용하여 로컬 호스트에서 직접 시도한 후 Magento 2를 성공적으로 설치하고 사용했습니다. 자세한 내용을 보려면이 링크를 확인하십시오 :
Magento 2 CSS 및 JavaScript가 올바른 폴더에서로드되지 않습니다

솔루션 # 2

Composer를 설치하십시오. 이제 Magento 2 zip을에서 다운로드 하고 phpmyadmin 에서 magentocommerce.com/downloaddb 를 생성 하고 htdocs 폴더 에서 zip을 추출하고 싶습니다 . Magento 2를 설치하지만 상점 URL 및 관리 URL에서 localhost 사용 127.0.0.1 을 사용 하지 마십시오 . 설치가 완료 되면 magento를 실행 하지 마십시오 .

이제 Composer 설치, 정적 콘텐츠 배포, Magento 캐시 지우기 / 플러시 및 Magento 2 블록의 색인을 다시 작성합니다. 위의 모든 작업을 수행하려면 WINDOWS KEY + R을 눌러 RUN 대화 상자를 열고“cmd”를 입력하여 명령 프롬프트를 엽니 다.

cd PATH_TO_YOUR_MAGENTO2_FILES “를 입력하여 Magento 2 ROOT 디렉토리에 입력하십시오.

위의 디렉토리에서 Composer 설치를 확인 하려면composer install “을 입력하십시오.

이 단계에서 오류가 발생하면 Composer 설치를 확인하십시오

이 단계에서는 Magento 저장소에 배포 할 정적 콘텐츠를 설정합니다. 이렇게하려면 ” php bin / magento setup : static-content : deploy “를 입력하십시오.

오류가 발생하면 PHP.EXE 및 PHP.INI 환경 변수를 확인하십시오.

CMD에 ” php bin / magento cache : flush “를 입력하여 Magento 캐시를 지우거나 비 웁니다 .

마지막으로, Magento Static Blocks를 다시 색인하려면php bin / magento indexer : reindex ”를 입력하십시오.

Magento 2를 성공적으로 설치했습니다.


답변

아래 명령을 실행하십시오

php bin/magento setup:static-content:deploy

그리고 이미 말했듯이 파일이 누락 된 것처럼이 명령을 실행하는 동안 오류가 발생하면 프로젝트 파일 구조와 새로운 magento2파일 구조 를 비교하십시오 . 프로젝트에 파일이 없으면 적절한 파일을 프로젝트에 복사하십시오.

그리고 다른 오류가 발생하면 질문에 오류를 게시하여 누군가가 귀하의 질문에 대답 할 수 있도록하십시오.


답변

intl확장 프로그램이 PHP의 콘솔 버전에로드되지 않은 것 같습니다 . PHP의 apache 및 cli 버전에 동일한 버전 / 설정을 사용하고 있는지 확인하십시오.

MacOsX에는 php 버전이 사전 설치되어 있으며 php를 설치하는 일부 패키지는 터미널 세션에 대한 심볼릭 링크를 변경하지 않습니다. 결과적으로 다른 버전의 PHP를 동시에 설치할 수 있습니다.

추신 : Mac OS에서 방랑자를 사용할 것을 제안합니다. 파일 공유에 nfs를 사용하면 꽤 잘 작동합니다.


답변

다른 모든 방법이 실패하면 다음 디렉토리를 정리하십시오.

rm -rf pub/static/*    # DO NOT DELETE .htaccess
rm -rf var/view_preprocessed/*
php bin/magento setup:static-content:deploy

해당 디렉토리에서 심볼릭 링크가 끊어지면 작동합니다.


답변

page_cache, di, view_process, 캐시 지우기

그런 다음 폴더와 파일에 적절한 권한을 부여하십시오.

그런 다음 실행 php bin/magento setup:static-content:deploy 루트 폴더에서 하십시오.

술집 / 정적을 확인하십시오.

이것이 도움이되기를 바랍니다.


답변

magento2 디렉토리에 설치 composer하고 실행 했습니까 composer init? 그렇지 않은 경우 시도한 다음 명령을 실행하십시오.php bin/magento setup:static-content:deploy