Jaki jest komunikat o błędzie:
Wymagany parametr „theme_dir” nie został przekazany
Czy ma to związek z Magento 2? Jak rozwiązać ten problem?
Jaki jest komunikat o błędzie:
Wymagany parametr „theme_dir” nie został przekazany
Czy ma to związek z Magento 2? Jak rozwiązać ten problem?
Odpowiedzi:
Na wszelki wypadek, jeśli usuwasz motyw bezpośrednio (nie w sposób Magento).
Następnie wykonaj następujące kroki.
KROK 1: Operacje na plikach
Usuń zawartość z
app/design/frontend/<Vendor>
(najpierw wykonaj kopię zapasową).Usuń całą zawartość folderu
var/view_preprocessed
ipub/static/frontend
.KROK 2: Operacje DB
Przejdź do
theme
tabeli i usuń wpis utworzonego motywu.Po tym...
Przejdź do
core_config_data
tabeli i wyszukaj,theme
a otrzymasz rekordy ścieżek, takie jakdesign/theme/theme_id
zastąp w nim domyślny identyfikator motywu.KROK 3: Opróżnij pamięć podręczną
Opróżnij pamięć podręczną
php bin/magento cache:flush
Daj mi znać, jeśli nadal będziesz mieć problemy.
źródło
theme
-Tabela, ale zapomniał ocore_config_data
wartości.setup:static-content:deploy
administrator wrócił do interfejsu użytkownika.pub/static/.htaccess
nie było. dziękiTen komunikat o błędzie oznacza, że masz skonfigurowaną kompozycję, która już nie istnieje w systemie plików (więcej).
Można to łatwo naprawić, wybierając prawidłowy motyw. Przejdź do Treść -> Konfiguracja , wybierz zakres (globalny, strona internetowa, store_view) i zmień motyw. Po wykonaniu tej czynności należy również usunąć go z Treści -> Motywy .
Bibliografia
źródło
W moim przypadku usunąłem motyw podrzędny z katalogu dostawcy. Ale pozycja DB wciąż była w
theme
tabeli. Przejdź dotheme
tabeli i usuń rekord wskazujący na usunięty motyw.źródło
composer remove vendor/theme
?rm -rf vendor/theme
Upewnij się, że
theme
wpis i wpis w tabelimagento\app\design\frontend\<Vendor>
będą takie same.Jeśli nie, powoduje to problem.
Usuń niepotrzebny motyw za pomocą Administratora -> Treść -> Projekt -> Motywy . Usuń to. Więc usunie również DB Entry.
Jeśli usuniesz tylko folder, to nie będzie działać
źródło
Ten problem może również wystąpić, gdy jesteś w stanie emulowanym, na przykład w poleceniu CLI. Miałem sytuację, w której nie mogłem wysłać wiadomości e-mail w interfejsie CLI, ponieważ polecenie owijania działało w stanie emulowanym:
W powyższym przykładzie, gdy wiadomość e-mail próbowała ustalić, że jest katalogiem szablonu, zostanie zamapowana na
global/Magento/backend
, która nie istnieje. Aby to naprawić, musiałem ręcznie dodać to do mojego konstruktora:Po tej poprawce problem został rozwiązany i mogłem wysłać wiadomość e-mail.
Aktualizacja:
Jeśli chodzi o wysyłanie poczty za pomocą interfejsu CLI, bardziej odpowiednim podejściem byłoby użycie emulacji. Na przykład:
W ten sposób nie musisz robić swoich brudnych, małych hacków.
źródło
biegać
sql UPDATE core_config_data SET value=NULL WHERE path='design/theme/theme_id'
następnie wyczyścić
pub/static/frontend
,var/view_preprocessing
,var/cache
,var/page_cache
katalogi.źródło
@hakre jest poprawny. Mam ten sam błąd
Required parameter 'theme_dir' was not passed
. Poniżej wyjaśniam, co zrobiłem, aby spowodować błąd:I tworząc temat w / MyVendorTheme2 / myThemeName2 app / design / frontend katalogu, a następnie ustawił go wybierając temat " MyVendorTheme2 - myThemeName2 " w przeglądarce Admin Magento 2 ( Sklepy> Konfiguracja> Ustawienia motywu> Ogólne> Projekt> Projekt Theme ) . Ale potem postanowiłem przenieść katalog „ myThemeName2 ” (zawierający mój nowy motyw) do innego (istniejącego) folderu dostawcy „ MyVendorTheme1 ” app / design / frontend / MyVendorTheme1 / myThemeName2 i usunąłem go z folderu „ MyVendorTheme2 ”, w którym to było wcześniej. I przystąpił do opracowania aktywa (czyli
grunt clean
,grunt exec:myThemeName2
,grunt less:myThemeName2
), a następnie otworzyłem przeglądarkę w mojej subdomenie motywu (tj. http: // moja_wirtualnahostdomena: mójport / mojavendortheme1_mythemename2_magento2_quickstart / ).Początkowo otrzymałem nieokreślony błąd:
There has been an error processing your request Exception printing is disabled by default for security reasons. Error log record number:
I włączone raportowanie błędów przez zmianę nazwy
pub/errors/local.xml.sample
, abylocal.xml
i odświeżane stronę. Następnie został przedstawiony błądRequired parameter 'theme_dir' was not passed
.Rozwiązałem błąd, wracając do mojej przeglądarki Magento 2 Admin ( Sklepy> Konfiguracja> USTAWIENIA TEMATÓW> OGÓLNE> Projekt> Motyw projektu ), w której wybrano mój poprzedni i teraz nieprawidłowy motyw projektu, więc wybrałem właściwy.
źródło
Ten błąd przydarzył mi się podczas zapisywania zdjęć produktów po zainstalowaniu niestandardowego motywu.
Miałem niestandardowy motyw ustawiony jako typ wirtualny, czyli w DB w tabeli motywów, typ = 1. W moim przypadku nie używałem już motywu, więc usunąłem go ze stołu.
źródło
1 - Użyj poniższego polecenia, aby zidentyfikować motywy w panelu administracyjnym.
2 - Uruchom polecenie, aby zidentyfikować zainstalowane motywy:
3- Uruchom poniższe polecenia, aby utworzyć motyw, który nie istnieje:
źródło
Jeśli nic nie zadziałało, nie zapomnij sprawdzić sekcji kategorii. Tam też są ustawienia projektu. Upewnij się, że przypisano poprawny motyw projektu. W moim przypadku błąd występował tylko w niektórych kategoriach.
źródło
Podczas dodawania lub edycji produktu przejdź do sekcji Projektowanie i zmień opcję układu.
źródło
Możesz usunąć nieużywany motyw bezpośrednio z bazy danych, wykonując poniższe zapytanie:
whene unusedtheme to nieużywany motyw, a po zamknięciu pamięci podręcznej
źródło
Miałem ten problem, gdy przypadkowo usunąłem folder app / desing / adminhtml / theme-name. Przywrócenie go rozwiązało mój problem. Co więcej, zdarzyło się to tylko wtedy, gdy próbowałem wejść do panelu administracyjnego.
źródło
W niektórych przypadkach motyw niestandardowy zostanie usunięty w odpowiedni sposób, wtedy pojawi się również ten błąd. W tej sytuacji:
Odśwież błąd strony zniknął.
źródło
Rozwiązałem problem. W moim przypadku problemem nie był Magento2, ale niepoprawna operacja, którą zrobiłem dawno temu: Stworzyłem motyw tworzący ścieżkę względną w app / design / frontend / MyFolder / MyTheme i zarejestrowałem go, jak wyjaśniono w dokumentacji online Magento 2. Następnie postanowiłem anulować motyw i zamiast tego użyć odpowiedniego polecenia: bin / magento theme: odinstaluj frontend / MyFolder / MyTheme, usunąłem foldery bezpośrednio. Nie jest to dobra operacja, ponieważ baza danych nie jest aktualizowana wymaganymi informacjami. Rozwiązanie: z edytorem bazy danych jako phpmyadmin usuń rekord z tabeli „Motyw” odpowiadający usuniętym folderom. Mam nadzieję, że to pomoże!
źródło
Wiem, że to pytanie jest dość stare, ale ponieważ natknąłem się na to właśnie dzisiaj i szybko dowiedziałem się, jaki jest mój problem, postanowiłem opublikować moją odpowiedź jako przypomnienie dla wszystkich, którzy podobnie jak ja używają PhpStorm do pracy z Magento: pamiętaj, aby sprawdzić swoje pliki podczas zmiany gałęzi.
W moim przypadku gałąź, nad którą pracowałem, nie miała wymaganych plików motywu (zostały one ukryte przez PhpStorm, gdy zmieniłem gałąź motywu na gałąź master), ponieważ nie zostały jeszcze scalone, więc błąd.
Mam nadzieję, że to może komuś pomóc.
źródło
usuń wszystkie tymczasowe pliki motywu, które nie są używane na stronie internetowej i usuń również z motywu, który nie używa i uruchom pamięć podręczną:
źródło