Lokalna instalacja Magento 2 nie generuje plików w folderze pub / static


15

Właśnie zainstalowałem Magento 2 Community Edition z przykładowymi danymi (pobranymi z ich strony internetowej i nie zainstalowanymi z kompozytorem) lokalnie przez MAMP. Proces instalacji powiódł się, ale brakuje wszystkich plików w folderze pub / static z wyjątkiem .htaccess. Oznacza to, że wszystkie css, js itp. Zwracają 404 zarówno dla frontendu, jak i backendu.

Spędziłem kilka godzin, próbując to naprawić bez powodzenia. Oto co zrobiłem do tej pory:

  • Zmieniono Options Indexes FollowSymLinks AllowOverridez „Brak” na „Wszystko” w /MAMP/conf/apache/httpd.conf i zrestartowałem MAMP
  • Upewnij się, że nie LoadModule rewrite_module modules/mod_rewrite.soma komentarza w httpd.conf
  • Skonfiguruj domenę programistyczną (magento.dev) w MAMP
  • Próbowałem uruchomić php bin/magento setup:static-content:deployw katalogu głównym magento.dev przy użyciu terminalu. Zwraca to jednak:

Błąd krytyczny: nie znaleziono klasy „Ustawienia regionalne” w /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php w linii 64

  • Niekomentowane i zmienione RewriteBase na RewriteBase /w pliku .htaccess w katalogu głównym magento.dev.
  • Ustaw Magento w trybie programowania
  • Ręczne czyszczenie pamięci podręcznej i php bin/magento setup:static-content:deployponowne uruchomienie

Większość przewodników i postów na forum mówi mi, żebym uruchomił: php bin/magento setup:static-content:deployale nie jestem pewien, czy robię to poprawnie.

System operacyjny: OSX 10.11.2

Wersja MAMP: 3.5

Wersja PHP: 7.0

Wersja Apache: 2.4.16

Wersja MySQL: 5.6.25

Każda pomoc będzie mile widziana.


Korzystam z wersji 2.2.2 zainstalowanej na serwerze CentOS. Nic na tej stronie nie działa. Aby mieć jakąkolwiek stylizację, muszę uruchomić php bin/magento setup:static-content:deploy -f i poczekać 80 sekund.
Chris K

Odpowiedzi:


15

ROZWIĄZANIE # 1 (JEŚLI CHCESZ EDYTOWAĆ PLIK XML)

Chciałbym, abyś pobrał plik Magento 2 zip magentocommerce.com/download, utworzył nowy plik db w phpmyadmin , rozpakował plik zip w folderze htdocs . Zainstaluj Magento 2, ale nie używaj localhost, użyj 127.0.0.1 w adresie URL sklepu i administracyjnym. Po udanej instalacji NIE uruchamiaj magento.

Teraz wyczyścimy / usuniemy pamięci podręczne i sesje Magento 2. Przejdź do następujących ścieżek i usuń wszystko:

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

Kiedy Magento 2 nie jest w trybie produkcyjnym, spróbuje utworzyć dowiązania symboliczne dla niektórych zasobów statycznych na serwerze lokalnym. Musimy zmienić to zachowanie Magento 2, przechodząc do edycji ROOT > app > etc > di.xmlpliku. Otwórz di.xmlw swoim ulubionym edytorze kodu, znajdź virtualType name="developerMaterialization"sekcję. W tej sekcji poniżej znajdziesz element, <item name="view_preprocessed" xsi:type="object">który należy zmodyfikować. Możesz to zmienić, zmieniając następującą treść:

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

Do:

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

Teraz ostatni krok, usuń również stare pliki wygenerowane w ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

Osobiście wypróbowałem to na moim hoście lokalnym, używając MAMP, EasyPHP DevServer, Xampp i Wampp, i pomyślnie zainstalowałem i używając Magento 2. Aby uzyskać więcej informacji, możesz sprawdzić ten link: Magento 2 CSS i JavaScript nie ładują się z właściwego folderu

ROZWIĄZANIE # 2

Zainstaluj Composer. Teraz chciałbym, abyś pobrał plik Magento 2 zip magentocommerce.com/download, utworzył nowy plik db w phpmyadmin , rozpakował plik zip w folderze htdocs . Zainstaluj Magento 2, ale nie używaj localhost, użyj 127.0.0.1 w adresie URL sklepu i administracyjnym. Po udanej instalacji NIE uruchamiaj magento.

Teraz zweryfikujemy instalację Composer, Wdróż statyczną zawartość, wyczyść / opróżnij pamięć podręczną Magento i ponownie zindeksuj bloki Magento 2. Aby wykonać wszystkie powyższe czynności, naciśnij KLAWISZ WINDOWS + R, aby otworzyć okno dialogowe RUN i wpisz „cmd”, aby otworzyć wiersz polecenia.

Wpisz „ cd PATH_TO_YOUR_MAGENTO2_FILES ”, aby wejść do katalogu ROOT Magento 2.

Teraz, aby zweryfikować instalację kompozytora w powyższym katalogu, wpisz „ instalacja kompozytora ”.

Jeśli w tym kroku wystąpi błąd, sprawdź instalację programu Composer

W tym kroku konfigurujemy zawartość statyczną do wdrożenia w naszym sklepie Magento. Aby to zrobić, wpisz „ php bin / magento setup: static-content: deploy ”.

Jeśli pojawi się jakikolwiek błąd, sprawdź swoją zmienną środowiskową PHP.EXE i PHP.INI

Wyczyść / opróżnij pamięć podręczną Magento, wpisując „ php bin / magento cache: flush ” w CMD.

I na koniec, do Reindex Magento Static Blocks wpisz „ php bin / magento indexer: reindex ”.

Skończyłeś z udaną instalacją Magento 2.


Odpowiedź została edytowana.
Fayyaz Khattak,

Greate! Próbowałem rozwiązanie 1 i działa dla mnie .. Dzięki Khatak sb
Muhammad Azeem

Witamy @MuhammadAzeem
Fayyaz Khattak

@RajaKhoury Nie ma za co!
Fayyaz Khattak,

Rozwiązanie 1 działa dla mnie! Dziękuję bardzo !!
Daniel Silva

5

Spróbuj uruchomić poniżej polecenia

php bin/magento setup:static-content:deploy

A jeśli podczas uruchamiania tego polecenia pojawi się błąd, na przykład brak pliku, jak już powiedziałeś, porównaj strukturę pliku projektu ze świeżą magento2strukturą pliku. Jeśli brakuje jakiegoś pliku w projekcie, skopiuj odpowiedni plik do swojego projektu.

Jeśli wystąpi jakikolwiek inny błąd, opublikuj błąd w swoim pytaniu, aby ktoś mógł odpowiedzieć na Twoje pytanie.


Dziękuję za szybką odpowiedź. Zrobię to. Gdzie dokładnie i jak uruchomić to polecenie?
Skovsgaard

@Skovsgaard możesz uruchomić to polecenie z terminala, ale upewnij się, że jesteś w katalogu magento2 z terminala
Keyur Shah

Wygląda na to, że nie brakuje żadnych plików. Zainstalowane Magento zawiera oczywiście więcej plików związanych z procesem instalacji. Otrzymuję ten błąd: Fatal error: Class 'Locale' not found in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64po uruchomieniu php bin/magento setup:static-content:deployw katalogu głównym.
Skovsgaard

Nie byłam naprawdę pomocna. Przepraszam.
Skovsgaard

2

Wygląda jak intl rozszerzenie nie jest ładowane do twojej konsoli w wersji php. Sprawdź, czy używasz tej samej wersji / ustawień dla wersji apache i cli php.

MacOsX ma preinstalowaną wersję php, a niektóre pakiety instalujące php nie zmieniają dowiązania symbolicznego dla sesji terminala. W rezultacie możesz mieć zainstalowaną inną wersję php w tym samym czasie.

PS: Proponuję użyć włóczęgi na Mac OS. działa całkiem dobrze, jeśli używasz NFS do udostępniania plików


Aha! Fabrycznie zainstalowany php (cli) to tylko 5.5.30. Fabrycznie zainstalowany Apache to 2.4.16 (nie wiem, jak sprawdzić wersję apache MAMP, jeśli MAMP również instaluje Apache osobno). Więc muszę zaktualizować preinstalowaną wersję do wersji 7, a także zainstalować rozszerzenie intl (cli czy mamp?)? Włóczęga wydaje się zbyt zaawansowany jak na nooba takiego jak ja.
Skovsgaard,

Nie mogę odpowiedzieć na pytania specyficzne dla komputerów Mac, ale istnieją co najmniej dwa sposoby sprawdzenia wersji PHP: php -v(która pokazuje, jaka wersja komend PHP działa jako) i użycie phpinfo.php , która pokazuje, jaką wersję PHP obsługuje serwer WWW.
Steve Johnson

Okej, więc MAMP działa w PHP 7 i Apache 2.2.29. Moja lokalna maszyna działa w PHP 5.5.30 i Apache 2.4.16. Więc następnym krokiem jest aktualizacja PHP lokalnego komputera do wersji 7?
Skovsgaard

Spróbuj użyć pełnej ścieżki do pliku binarnego
php7

2

Jeśli wszystko inne zawiedzie, przyciąć te katalogi:

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

Działa to, jeśli masz złamane dowiązania symboliczne w tych katalogach.


1
.htaccess nigdy nie powinien być usuwany. Popełniłem również ten błąd i zmarnowałem godziny
Tahir Yasin,

1

wyczyść pamięć podręczną strony, di, proces podglądu, pamięć podręczną

następnie daj odpowiednie uprawnienia do folderów i plików.

następnie uruchomić php bin/magento setup:static-content:deploy z folderu głównego.

sprawdź pub / static.

Mam nadzieję, że to Ci pomoże.


Gdzie i jak mam biegać clear page_cache, di ,view_process, cache? Jest to instalacja lokalna, więc jako administrator super komputera mam wszystkie uprawnienia do odczytu / zapisu. Czy są jakieś inne uprawnienia, o których nie wiem?
Skovsgaard

jeśli używasz lokalnego niż dać pełne uprawnienia do folderu głównego
denish vachhani

wszystkie foldery znajdują się w var / wyczyść wszystkie foldery i daj pełne uprawnienia do folderu.
denish vachhani

1

Czy zainstalowałeś composeri uruchomiłeś composer initw katalogu magento2? Jeśli nie, spróbuj, a następnie uruchom poleceniephp bin/magento setup:static-content:deploy


Kompozytor jest zainstalowany na moim komputerze, tak, ale nie użyłem go do instalacji Magento 2. Po prostu pobrałem .zip z ich strony internetowej, rozpakowałem i zainstalowałem. Jeśli uruchomię composer initkompozytora, poprosi mnie o skonfigurowanie konfiguracji composer.json, więc myślę, że to nie pomoże.
Skovsgaard
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.