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


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.


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.


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 samumaretiya@gmail.com
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.


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>

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.


1

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

php deploy.php

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.


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


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

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.


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


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

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.



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.


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.


0

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


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.


0

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

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.