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.

Skovsgaard
źródło
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.

Fayyaz Khattak
źródło
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.

Keyur Shah
źródło
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

KAndy
źródło
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.

kichać
źródło
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.

denish vachhani
źródło
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

Quan Le
źródło
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