Quel est le message d'erreur:
Le paramètre requis 'theme_dir' n'a pas été transmis
Est-ce lié à dans Magento 2? Et comment résoudre ce problème?
Quel est le message d'erreur:
Le paramètre requis 'theme_dir' n'a pas été transmis
Est-ce lié à dans Magento 2? Et comment résoudre ce problème?
Réponses:
Juste au cas où vous supprimeriez le thème directement (pas de manière Magento).
Puis suivez ces étapes.
ÉTAPE 1: Opérations sur les fichiers
Supprimez le contenu de
app/design/frontend/<Vendor>
(assurez-vous de le sauvegarder en premier).Supprimer tout le contenu du dossier
var/view_preprocessed
&pub/static/frontend
.ÉTAPE 2: Opérations de base de données
Accédez à votre
theme
table et supprimez l'entrée du thème créé.Après ça...
Accédez à votre
core_config_data
table, recherchez-latheme
et vous obtiendrez des enregistrements de chemin d'accès, comme ledesign/theme/theme_id
remplacement de votre identifiant de thème par défaut.ÉTAPE 3: Vider le cache
Videz votre cache
php bin/magento cache:flush
Faites-moi savoir si vous rencontrez toujours des problèmes après cela.
la source
theme
table, mais j'ai oublié lacore_config_data
valeur.setup:static-content:deploy
administrateur est retourné à l'interface utilisateur.pub/static/.htaccess
ne pas être là. merciCe message d'erreur signifie que vous avez un thème configuré qui n'existe plus (pas plus) dans le système de fichiers.
Il peut être facilement corrigé en sélectionnant un thème valide. Allez à Contenu -> Configuration , sélectionnez la portée (globale, site Web, store_view) et changez le thème. Une fois que vous avez terminé, vous devez également le supprimer de Contenu -> Thèmes .
Références
la source
Dans mon cas, j'ai supprimé un thème enfant du répertoire des fournisseurs. Mais l'entrée DB était toujours là dans la
theme
table. Allez donc à latheme
table et supprimez l'enregistrement qui pointe vers le thème supprimé.la source
composer remove vendor/theme
?rm -rf vendor/theme
Assurez-vous que l'
theme
entrée et l'entrée de la tablemagento\app\design\frontend\<Vendor>
seront les mêmes.Sinon, cela cause ce problème.
Supprimer le thème inutile via Admin -> Contenu -> Conception -> Thèmes . Supprime-le. Donc, cela supprimera aussi DB Entry.
Si vous ne supprimez que le dossier, cela ne fonctionnera pas
la source
Ce problème peut également se produire lorsque vous êtes dans un état émulé, par exemple dans une commande CLI. Je ne pouvais pas envoyer de courrier électronique dans l'interface de ligne de commande car la commande d'habillage s'exécutait dans un état émulé:
Dans l'exemple ci-dessus, lorsque le courrier électronique tentait de déterminer son répertoire modèle, il était mappé sur
global/Magento/backend
, ce qui n'existe pas. Pour résoudre ce problème, je devais l'ajouter manuellement dans mon constructeur:Après ce correctif, le problème était résolu et je pouvais envoyer le courrier électronique.
Mise à jour:
Lorsqu'il s'agit d'envoyer un courrier à l'aide de la CLI, une approche plus appropriée consisterait à utiliser l'émulation. Par exemple:
De cette façon, vous n'avez pas à faire votre sale petit bidouillage.
la source
courir
sql UPDATE core_config_data SET value=NULL WHERE path='design/theme/theme_id'
puis désactivez les
pub/static/frontend
,var/view_preprocessing
,var/cache
,var/page_cache
répertoires.la source
@hakre est correct. J'ai la même erreur
Required parameter 'theme_dir' was not passed
. Ci-dessous, j'explique ce que j'ai fait pour provoquer l'erreur:Je crée un thème dans le répertoire app / design / frontend / MyVendorTheme2 / myThemeName2 , puis je le configure en sélectionnant le thème " MyVendorTheme2 - myThemeName2 " dans le navigateur Admin Magento 2 ( Boutiques> Configuration> PARAMÈTRES THÈME> GÉNÉRAL> Design> Thème de conception ). . Mais j'ai ensuite décidé de déplacer le répertoire " myThemeName2 " (contenant mon nouveau thème) pour le placer dans un autre dossier de fournisseur (existant) " MyVendorTheme1 " app / design / frontend / MyVendorTheme1 / myThemeName2 , et je l' ai supprimé du dossier " MyVendorTheme2 ". c'était avant. J'ai procédé à la compilation des actifs (c.
grunt clean
-à- d .grunt exec:myThemeName2
,grunt less:myThemeName2
), puis ouvrez mon navigateur dans mon sous-domaine de thème (par exemple, http: // myvirtualhostdomain: myport / myvendortheme1_mythemename2_magento2_quickstart / ).Au départ, j'ai eu une erreur non spécifiée:
There has been an error processing your request Exception printing is disabled by default for security reasons. Error log record number:
J'ENABLED erreur de déclaration en renommant
pub/errors/local.xml.sample
àlocal.xml
, et rafraîchi la page. On m'a alors présenté l'erreurRequired parameter 'theme_dir' was not passed
.J'ai résolu l'erreur en revenant dans le navigateur de mon administrateur Magento 2 ( Magasins> Configuration> PARAMÈTRES DU THÈME> GÉNÉRAL> Design> Thème de conception ), mon thème de conception précédent et maintenant non valide étant sélectionné, j'ai donc choisi le bon.
la source
Cette erreur m’est arrivée lors de l’enregistrement des images du produit après l’installation d’un thème personnalisé.
J'avais le thème personnalisé défini en tant que type virtuel, c'est-à-dire dans la base de données DB de la table theme. Dans mon cas, je n'utilisais plus le thème. Je l'ai donc supprimé de la table.
la source
1 - Utilisez la commande ci-dessous pour identifier les thèmes dans le panneau d'administration.
2 - Exécutez la commande pour identifier les thèmes installés:
3- Exécutez ces commandes ci-dessous pour créer le thème qui n'existe pas:
la source
Si rien n'a fonctionné, n'oubliez pas de vérifier la section des catégories. Il y a aussi des paramètres de conception. Assurez-vous que le bon thème de conception est attribué. Dans mon cas, l'erreur ne concernait que certaines catégories.
la source
Lorsque vous ajoutez ou modifiez un produit, accédez à la section Conception et modifiez l’option de présentation.
la source
Vous pouvez supprimer directement le thème inutilisé de la base de données en exécutant la requête ci-dessous:
Quand Thème Inutilisé est le thème inutilisé, et après vous clena votre cache
la source
J'ai eu ce problème lorsque j'ai supprimé par accident le dossier app / desing / adminhtml / theme-name. Le ramener a résolu mon problème. De plus, cela ne s'est produit que lorsque j'ai essayé d'entrer dans le Panneau d'administration.
la source
Dans certains cas, si vous supprimez le thème personnalisé de manière appropriée, vous devrez également faire face à cette erreur. Dans cette situation:
Actualiser l'erreur de page disparue.
la source
J'ai résolu le problème. Dans mon cas, le problème n'était pas Magento2, mais une opération fausse que j'avais effectuée il y a longtemps: j'ai créé un thème créant le chemin relatif dans app / design / frontend / MyFolder / MyTheme et l'ai enregistré comme expliqué dans la documentation en ligne de Magento 2. Ensuite, j'ai décidé d'annuler le thème et d'utiliser la commande appropriée suivante: bin / magento theme: uninstall frontend / MyFolder / MyTheme J'ai supprimé les dossiers directement. Ce n'est pas une bonne opération car la base de données n'est pas mise à jour avec les informations requises. Solution: avec un éditeur de base de données tel que phpmyadmin, supprimez l'enregistrement dans le tableau "Thème" correspondant aux dossiers supprimés. J'espère que cela aidera!
la source
Je sais que cette question est assez ancienne, mais depuis que je suis tombée dessus aujourd'hui et que j'ai rapidement découvert quel était mon problème, j'ai décidé de poster ma réponse comme rappel à tous ceux qui, comme moi, utilisent PhpStorm pour travailler avec Magento: n'oubliez pas de consulter vos fichiers lorsque vous changez de branche.
Dans mon cas, la branche sur laquelle je travaillais ne possédait pas les fichiers de thème requis (ils ont été cachés par PhpStorm lorsque je suis passé de la branche de thème à la branche principale) car ils ne sont pas encore fusionnés. Erreur.
J'espère que cela pourrait aider quelqu'un.
la source
supprime tous les fichiers temporaires de thème non utilisés sur le site Web et supprime également le thème ne pas utiliser et exécute le cache: flush
la source