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.