Pliki CSS i JavaScript nie ładują się po instalacji Magento 2

25

Zainstalowałem Magento 2 na lokalnym serwerze z powodzeniem za pomocą kompozytora, ale nie widzę projektów interfejsu użytkownika i panelu administracyjnego. Widzę tam zwykłe teksty. Patrząc na konsolę, widzę następujący błąd.

TypeError: require.config is not a function requirejs-config.js
TypeError: require.config is not a function admin:59
TypeError: require is not a function admin:62
ReferenceError: Ext is not defined admin:68
ReferenceError: Fieldset is not defined admin:76
TypeError: require is not a function admin:83
TypeError: require is not a function

wprowadź opis zdjęcia tutaj

amitshree
źródło
apache / nginx?
zhartaunik
Używam serwera Apache.
amitshree
jesteś w systemie Windows?
Chris O'Toole,
Nie. Używam ubuntu.
amitshree

Odpowiedzi:

13

Może to być problem z dowiązaniami symbolicznymi. Widzę, że deploy.php działał dla Ciebie, ale możesz również spróbować usunąć zasoby z pub / static i sprawdzić, czy instrukcje z /magento//a/64808/594 działają dla Ciebie. Jeśli tak, może to zaoszczędzić trochę czasu podczas programowania, ponieważ powinno być szybsze niż uruchomienie pliku deploy.php.

Dobrze byłoby również wiedzieć, czy wiele osób boryka się z problemami z dowiązaniami symbolicznymi i jaka jest ich wspólna przyczyna.

Chris O'Toole
źródło
1
Każdy, kto natknął się na ten problem, powinien spróbować na początku. Dziękuję Ci !
Haijerome
Zasadniczo mieliśmy ten konkretny problem z instalacjami Magento poniżej 2.0.6, jeśli ktoś ma problemy. Szczególnie nas wkurzyło 2.0.4. Jeśli więc nadal potrzebujesz jednej z tych wersji, skorzystaj z niej. Następna aktualizacja powinna być do najnowszej stabilnej wersji!
Maks.
27

Jeśli napotkasz problem z css i projektem po instalacji w systemie Windows, wykonaj następujące kroki:

krok 1. php bin/magento setup:static-content:deploy

krok 2. php bin/magento indexer:reindex

krok 3. upewnij się, że apache „rewrite_module” jest włączony, a następnie zrestartuj serwer

krok 4. usuń folder pamięci podręcznej w var / cache

Powyższe kroki działają dla mnie. Mam nadzieję, że to również zadziała dla Ciebie.

Daj mi znać, jeśli nadal napotykasz jakiś problem.

samumaretiya
źródło
4
Jeśli rozwijasz się lokalnie, nie jest to odpowiednie rozwiązanie . Wymaga to ponownego wdrożenia zawartości statycznej za każdym razem, gdy zmieniasz widoki. Upewnij się, że jesteś w trybie programisty i że dowiązania symboliczne działają.
Nathan Merrill,
@NathanMerrill dzięki za opinie. Sądzę, że to jedyny problem, gdy dokonałeś zmiany poziomu motywu, jednak uzyskuję doskonały wynik bez wdrażania lokalnego za każdym razem.
samumaretiya
Zależy to całkowicie od tego, co robisz. Jeśli wprowadzasz zmiany w folderze widoku (nie tylko tworząc nowe pliki), musisz wdrożyć.
Nathan Merrill,
@NathanMerrill, jeśli chcesz mieć więcej rozmowy, możesz skontaktować się ze mną na skype: samumaretiya lub być może możemy porozmawiać przez Google Hangout [email protected]
samumaretiya
Pracuj jak urok !!!
Mike Nguyen
5

Mój problem polegał na tym, że byłem trochę zbyt podekscytowany moim pub/statici pub/media„czyszczeniem pamięci podręcznej” i przypadkowo usunąłem .htaccessplik pub/static.

Szybkim rozwiązaniem było włożenie świeżego /magento2ce/pub/static/.htaccessi opróżnienie skrzynki, a Bob jest twoim wujem. Nigdy więcej problemów z CSS.

Mam nadzieję że to pomoże. Byłoby wspaniale, gdyby istniał sposób na usunięcie plików i jakoś upewnić się, że inne pliki nie zostaną usunięte, na przykład .gitignore do rm -rfużytku w systemie Linux . Może pewnego dnia...

UWAGA: dotyczy tylko problemów z CSS, przepraszam, nie pomagam z brakującym problemem JS.

Nathaniel Rogers
źródło
Jesteś bohaterem!
Ares,
4

Miałem ten problem z wersją 2.1.3, w której podpis jest domyślnie ustawiony na true. Oznacza to, że adresy URL mają w nazwie ścieżki „wersję”. Na przykład ścieżka do pliku powinna być: -

pub / static / adminhtml / Magento / backend / en_US / mage / adminhtml / events.js

Ale pojawia się jako:

pub / static / version14043395384 / adminhtml / Magento / backend / en_US / mage / adminhtml / events.js

Aby to zmienić, otwórz plik: -

source \ vendor \ magento \ module-theme \ etc \ config.xml

I zmień wartość domyślną na zero: -

<konfiguracja>
    <domyślny>
        <dev>
            <statyczny>
                <sign> 0 </sign>
            </static>
        </dev>
    </default>
</config>
Dallas Clarke
źródło
2

Natknąłem się na ten problem na kilku instalacjach Magento 2 w produkcji.

Zakładając, że zrobiłeś to najpierw z wiersza poleceń.

php bin/magento setup:static-content:deploy from <magento_install_dir>

Następnie zmień uprawnienia do pliku na 755 w następujących katalogach:

/pub/

/ pub / static /

/ pub / static / frontend /

/ pub / static / adminhtml /

/ pub / static / _requirejs /

Voila! Pliki CSS / JS ładują się idealnie.

Robbie Reynolds
źródło
1

Po przejściu do folderu dev / tools / Magento / Tools / View i uruchomieniu tego w wierszu poleceń rozwiązano problem.

php deploy.php
amitshree
źródło
1
cholera, mam nadzieję, że to też rozwiąże mój problem, ale dev / tools / Magento / Tools / View nie istnieje w mojej instalacji
Tobias Hartmann
@TobiasHartmann: Czy sprawdziłeś, czy mod_rewrite jest włączony czy nie? Czy wszystkie katalogi / pliki mają odpowiednie uprawnienia, czy nie?
amitshree,
1

Miałem również ten problem, ale przestał być core_config_dataproblemem. Wszystkie moje zasoby były kierowane do httpsadresu URL, mimo że ustawiłem ten adres URL na http.

W core_config_datawywołanym polu web/secure/use_in_frontendjest ustawione na 1. Ustawiłem na 0, wyczyściłem pamięć podręczną i działało poprawnie.

Joshua Soileau
źródło
1

1- Zmodyfikuj plik aplikacji / etc / di.xml , zmieniając następującą treść:

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

Do:

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

2- sudo php /var/www/html/magento2ce/bin/magento setup:static-content:deploy

Hari
źródło
1

Miałem ten problem podczas korzystania z plików językowych.

Podczas korzystania z języka należy dołączyć język systemu:

php bin/magento setup:static-content:deploy nl_NL
emp
źródło
0

Jeśli masz problem z ładowaniem strony css i js po instalacji w magento2, wykonaj następujące kroki:

otwórz terminal i przejdź do katalogu głównego Magento

 $ cd / var / www / html / magento2 
Krok 1.

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

Krok 2.

 $ php bin / magento indexer: reindex
Krok 3.

upewnij się, że apache „rewrite_module” jest włączony, a następnie zrestartuj serwer

Krok 4.

 $ chown -R www-data: www-data / var / www / html / magento2 
Krok 5.

 $ chmod -R 777 / var / www / html / magento2 
Krok 6.

usuń folder pamięci podręcznej w var / cache

Powyższy krok działa. Mam nadzieję, że to również zadziała dla ciebie.

Arvind Rawat
źródło
0

Wykonaj poniższe czynności, aby pozbyć się tych problemów.

1) Pobierz Magento 2.

2) Wypakuj to do katalogu www LUB htdocs.

3) Zainstaluj magento. Nie używaj localhost , użyj 127.0.0.1 w adresie URL sklepu i adresie administratora.

4) Po udanej instalacji NIE URUCHAMIAJ MAGENTO.

5) Teraz usuń pamięć podręczną / sesję magento 2. Przejdź do wymienionych poniżej ścieżek i usuń pliki.

Magento Root > var > cache > Delete all files

Magento Root > var > page_cache > Delete all files

Magento Root > var > session > Delete all files

6) Zmień zachowanie dowiązań symbolicznych dla niektórych zasobów statycznych, jak wspomniano poniżej:

Gdy 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.xml w 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

7) Usuń wszystkie pliki oprócz **.htaccess**

Magento Root > pub > static > Delete all files except **.htaccess**

ZROBIONE. Teraz możesz uruchomić magento Front i Backend URL

Muhammad Azeem
źródło
0

Uruchom następujące polecenia:

php bin/magento setup:static-content:deploy
php bin/magento setup:upgrade
php bin/magento setup:di:compile 
php bin/magento cache:clean
Abhinav Singh
źródło
0

Nie trzeba edytować pliku di.xml. Wystąpiły błędy ładowania pliku js, gdy dowiązania symboliczne były włączone.
Wiele;

TypeError: $ .widget nie jest funkcją

Po prostu zamknij dowiązanie symboliczne

Zaawansowane> Deweloper> Ustawienia szablonów> Zezwalaj na dowiązania symboliczne> Nie

Po zamknięciu może nie zostać wdrożony ładowanie zasobów po raz pierwszy powoli, ale błędy js zniknęły.

rbostan
źródło
0

Weź również pod uwagę, że zmiana ustawień regionalnych Twojego sklepu może mieć taki efekt, jeśli nie masz dostępnych ustawień regionalnych w swoim własnym motywie. Widziałem to kilka razy.

ivanji
źródło
0

Możesz postępować zgodnie z tymi instrukcjami:

Jeśli jest jakaś version#######metoda poniżej, na pewno pomoże. http: //localhost/magento2/pub/static/version1511270229/frontend/Magento/luma/en_US/mage/calendar.css

Sklepy> Konfiguracja> Zaawansowane> Deweloper> Podpisuj pliki statyczne (Tak-> Nie)

JEŚLI masz dostęp do bazy danych, wykonaj następujące polecenie:

Wstaw wartości danych_konfiguracyjnych core_id (identyfikator_konfiguracji, zakres, identyfikator_ zasięgu, ścieżka, wartość) (null, „default”, 0, „dev / static / sign”, 0);

Remove the cache and reload the page. Te dwa proste kroki pomogły mi rozwiązać problemy ze ścieżką pliku js i css.

inrsaurabh
źródło
0

Właśnie brakowało mi pliku .htaccess w folderze pub / static. To musi tam być.

OZZIE
źródło
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienia, zostaw komentarz pod postem. - Z recenzji
Rama Chandran M
@RamaChandranM Miałem te same „objawy” na mojej stronie Magento, przejrzałem go i znalazłem to pytanie. Później znalazłem rozwiązanie mojego problemu. Dlaczego nie miałbym dzielić się możliwym rozwiązaniem z innymi? Nawet jeśli nie był to specyficzny problem autorów tutaj. Naprawdę dziwny komentarz!
OZZIE
0

Stawiałem czoła temu problemowi wiele razy. Pierwszą rzeczą pierwszą pub / static powinien mieć plik .htaccess, który ma przepisanie adresu URL dla numeru wersji zawartego w url zasobu statycznego.

Kalyan Chakravarthi V.
źródło
0

W moim przypadku w konfiguracji apache zmieniam AllowOverride z None na All w odpowiedniej sekcji Directory.

Marcin Żurek
źródło