Magento 2 CSS 및 JavaScript가 올바른 폴더에서로드되지 않습니다


34

나는 여기 누군가가 도울 수 있기를 바라고있다. Windows 7 시스템의 WAMP에서 Magento 2를 거의 설치하지 않고 설치하고 실행하려고합니다.

사이트를로드하기 위해 많은 다양한 농구대를 뛰어 넘은 후 이제 404 응답에 직면하고 스타일이나 자바 스크립트로드가 없습니다.

사양은 다음과 같습니다.

  • 마 젠토 -CE-2.0.0 + 샘플
  • 아파치 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

브라우저 콘솔을 보면 오류 중 pub / static 폴더에없는 파일에 액세스하려고합니다. "프론트 엔드"폴더가로드되고 대부분의 파일이 존재합니다. 그러나 일부 CSS 파일이 존재하지 않습니다.

PHP deploy 명령을 실행할 때

php bin/magento setup:static-content:deploy

다른 게시물에 언급되어 있는데 아래 오류가 발생합니다. 이 문제를 해결하는 방법을 잘 모르겠습니다.

치명적인 오류 : 45 행의 C : \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php에서 134217728 바이트의 허용 된 메모리 크기 (64 바이트 할당 시도)

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

최신 정보

PHP 메모리 허용량을 늘리고 php deploy 스크립트를 다시 실행했습니다. 이번에는 오류가 없었으며 완전히 실행되었습니다. 그러나 위에서 설명한 것과 동일한 문제가 여전히 존재합니다. 사이트가로드되지만 페이지 또는 자산을로드하려고 시도 할 때 스타일이 적용되지 않은 404 페이지를 찾을 수 없음 오류가 발생합니다.

아래의 Chrome Inspector 오류를 참조하십시오

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


@TejabhagavanKollepara이 질문은 먼저 요청되었고, 잘 구성되어 있고, 정답이 좋으므로, IMO의 다른 질문은 속지 않는 후보입니다.이 질문과 중복되는 다른 질문의 깃발이 거절 된 경우 , 동일한 질문을 달성하기 위해이 질문을 다른 질문과 중복으로 표시 할 필요는 없습니다.
7ochem

SA의 답변도 참조하십시오. 새로운 Magento 설치는 "기본"( "프로덕션"이 아님) 모드에 있으며 정적 콘텐츠를 배포 할 필요가 없습니다. 이는 다른 모든 답변에서해야 할 일입니다.
Jānis Elmeris

답변:


49

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

magentocommerce.com/download샘플 데이터로 Magento 2 zip을 다운로드 하고 phpmyadmin 에서 새 db 를 생성 하고 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

솔루션 # 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 "를 입력하십시오.

젠토 2.2.x 사용자

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

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

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

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

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


4
또한 php.ini에서 max_execution_time 을 500으로, memory_limit 를 2048M으로, post_max_size 를 2048M으로, upload_max_filesize
2048M으로

빠른 답변 감사합니다. 이러한 변경을 수행했지만 아무런 효과가 없습니다. 변경 한 후 WAMP 서버를 다시 시작했습니다. 내가 크롬 관리자에서 볼 수있는 오류를 표시 할 수있는 질문을 편집 한
E.Gain

오 내가 모든 캐시 및 세션, 메이크업의 변화 첫째, 한 가지 더 언급 삭제 죄송 di.xml 과에서도 삭제 모든 ROOT> 술집> 정적>의 .htaccess를 제외하고 모두 삭제
Fayyaz 카탁

1
@MagenX 이것은 어떤 도구를 더 선호하는지 모든 사람의 관점입니다. 당신의 눈에는 해결책에 대한 견해를 공유하지 않고 망치로 모든 것을 비판합니다.
Fayyaz Khattak

1
솔루션 # 2는 매력처럼 작동했습니다.이 문제를 해결하면서 며칠이 아닌 시간을 절약 해 주셔서 감사합니다!
Jonathan Marzullo

11

apache2.conf 파일 만 업데이트하면됩니다.

우분투 16.04에서

  1. 파일 열기 및 편집 /etc/apache2/apache2.conf
  2. apache2.conf 파일의 위치로 이동하십시오. <Directory /var/www/>
  3. 변경 "AllowOverride None""AllowOverride All"
  4. 파일을 저장하십시오
  5. 재시작 apache2 -> sudo service apache2 restart

이 답변을 찾기가 너무 어려웠습니다! 다른 곳에서는 새로운 Magento 설치가 "기본"( "생산"아님) 모드에 있고 정적 콘텐츠를 배포 할 필요가없는 경우에도 정적 콘텐츠를 제안 (재배치)하는 것이 좋습니다.
Jānis Elmeris

10

magento2에 설치 한 후 CSS 및 JS 페이지로드 디자인 문제가 발생하는 경우

다음 단계를 따르십시오 :

터미널을 열고 magento 웹 루트로 이동하십시오

 $ cd / var / www / html / magento2 

1 단계.

 $ PHP bin / magento setup : 정적 내용 : 배포

2 단계.

$ PHP bin / magento 인덱서 : reindex

3 단계.

아파치“rewrite_module”이 활성화되어 있는지 확인한 다음 서버를 다시 시작하십시오.

단계 4.

$ chown -R www-data : www-data / var / www / html / magento2 

5 단계.

 $ chmod -R 777 / var / www / html / magento2 

단계 6.

var / cache에서 캐시 폴더 삭제

위의 단계가 작동합니다. 나는 이것이 당신에게도 효과가 있기를 바랍니다.

문제가 있으면 알려주세요. :)

http://gotechnies.com/css-javascript-files-loading-magento-2-installation/


1
Windows에서 이러한 명령을 어떻게 실행합니까?
Hassan ALi

1
그것은 처음 3 단계 동안 나에게 효과적입니다. :)
hln

6
서버의 모든 파일에 대해 권한을 777로 설정하는 것은 현명하지 않습니다.
Chris Gudn

1
나는 전체 magento 설치에 대한 전체 읽기 쓰기 권한을 부여하는 단계에 감동하지 않습니다.
Cyclonecode

1
권한을 777로 설정하는 것은 좋지 않은 조언이지만 모든 시스템 관리자가 더 잘 알고 있기를 바랍니다.
John Hall

6

나를 위해 그것은 단순히 mod_rewrite가 활성화되지 않았기 때문입니다.

sudo a2enmod rewrite

service apache2 restart


1
완벽한 솔루션 !!! +1 :)
SagarPPanchal

6

추가하여 동일한 문제가 해결되었습니다.

sudo nano /etc/apache2/apache2.conf

이것을 수정

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

이에

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

또한 mod_rewriteinsall ssl certificate apache2 모듈을 활성화해야 합니다.

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
이것에 더하여 rm -rf var / *가 저에게 효과적이었습니다. 위대하고 좋은 장소.
Jon Holland

6

CSS 경로에 버전 이름을 표시하는 경우 가장 간단한 해결책은 다음과 같습니다.

좋아요 : pub / static / version323334 /

그런 다음 mysql 에서이 쿼리를 실행하십시오.

INSERT INTO core_config_data (path, value) VALUES ('dev/static/sign', 0)
ON DUPLICATE KEY UPDATE value = 0;

그 후 구성 캐시를 지우십시오.

 bin/magento cache:clean config

당신은 또한 관리자에서 정적 파일 버전을 비활성화 할 수 있습니다

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


4
감사합니다. 그러나 쿼리는 INSERT INTO core_config_data (path, value) VALUES ( 'dev / static / sign', 0)로 고정되어야합니다.
Aftab Naveed

경로와 가치는 무엇인가
zus

경로, 값은 필드 이름입니다 이미 값을 정의 (dev / static / sign, 0), 그냥이 SQL을 실행하면 작동해야합니다
Surendra Kumar Ahir

완벽한 솔루션 !!! 내 하루 :) +1
SagarPPanchal

5
  1. 전에 캐시를 비활성화하지 않으면 캐시를 비활성화하십시오.
  2. 깨끗한 코드로 최신 버전의 Magento를 가지고 있는지 확인하십시오. 무언가를 수정하거나 사용자 정의하는 경우 모든 오류를 수정하십시오.
  3. 아래 몇 가지 명령을 실행하면 도움이 될 수 있습니다.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

폴더 제거

  • pub/static/frontend/*
  • var/cache
  • var/view_preprocessed/*

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


3

내 경우에는 내가 실수로 삭제 .htaccess에서 파일 ROOT/pub/ROOT/pub/static폴더. 그런 다음 다시 되돌릴 때 작동하기 시작 합니다 .


2

해결 !!!

Magento2 루트 폴더의 CLI 인터페이스에서 다음 명령을 실행하십시오.

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

그런 다음 magento2의 루트에서이 명령으로 var 폴더를 삭제 하십시오.

rm -rf var/*

그런 다음 홈페이지와 관리자 패널을 새로 고칩니다. 그것의 작동 !!!!! 쿨 !!!!


1

404와 같은 문제가있었습니다. Apache의 VirtualHost 지시문이 올바른지 확인하여 해결했습니다. 내 VirtualHost는 다음과 같습니다.

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

또한 이전에 무엇이 잘못되었는지 알 수 있습니까? 그렇지 않으면이 예제는 다른 사람들에게별로 도움이되지 않습니다.
Fabian Schmengler


0

OP와 똑같은 문제가 있었고 단순히 로케일을로 설정했기 때문에 en_AU기본 배포 명령을 사용하여 en_US내용 만 생성했습니다 . 다음과 같이 실제로 사용중인 로케일을 명령의 EN에 추가해야합니다.

php bin/magento setup:static-content:deploy en_US en_AU

0

위의 솔루션을 시도했습니다. 그러나 그것은 도움이되지 않았습니다. 그럼에도 불구하고 시퀀스 변경과 함께 언급 한 것과 동일한 명령을 사용했습니다. 그들은,

  1. var 디렉토리 에서 캐시, composer_home, 생성, 로그, page_cache, tmp 및 view_preprocessed 를 지 웁니다.

  2. 다음 명령을 하나씩 실행하십시오.

PHP 빈 / 마 젠토 인덱서 :

PHP 빈 / 마 젠토 캐시 : 플러시

PHP bin / magento 설정 : 정적 내용 : 배포

나는 이것이 나와 같은 누군가에게 도움이되기를 바랍니다.


0

mod_pagespeed 비활성화

Pagespeed는 약어로 (예 : 일반 파일 인 경우) 컨텐츠의 "캐시 된"인스턴스를 처리합니다.

image.css

다음과 같이 설정됩니다.

image.pagespeed.css

위의 내용은 매우 간단한 예이지만 이미 기본 문제가있는 위치를 확인할 수 있습니다. 이로 인해 코어 경로를 통해 발견 할 수 없어서 정적 콘텐츠로드가 잘못 될 수 있습니다. 이는 일시적인 내용이기 때문입니다. 이것은 Mod_Pagespeed의 상속 문제입니다. 왜 우리는 그것을 비활성화 상태로 유지하는 것이 좋습니다.

빠른 혜성 지원의 해답, 그리고 내 문제를 해결


0

우분투 18.04 (바이오닉). 정적 파일을 올바르게로드하기 위해 다음 단계를 사용했습니다.

설치가 완료된 후 :

아파치 모듈 '다시 쓰기'가 활성화되어 있는지 확인하십시오.

  • cd /etc/apache2
  • 명령을 실행 a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

그런 다음 다음과 같이 변경하십시오.

다음에서 수정하십시오.

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

그런 다음 아파치를 다시 시작하십시오.

sudo service apache2 restart

또는

sudo /etc/init.d/apache2 restart

그런 다음에 대한 권한을 변경하십시오. <magento root director>

  • chmod -R 774 /var/www/html/<magento root director>

그런 다음 정적 콘텐츠를 배포하십시오.

  • php bin/magento setup:static-content:deploy -f (-f는 개발 환경에있는 경우 필요합니다)

그런 다음 캐시를 플러시하고 다시 색인화하십시오

  • <magento root directory> php bin/magento cache:flush
  • <magento root directory> php bin/magento indexer:reindex

또는

  • <magento root directory> rm -R /var/cache*

그런 다음을 사용하여 홈페이지에 액세스

  • 127.0.0.1/your_configured_url 대신에 localhost/your_configured_url

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