Cuál es el mensaje de error:
El parámetro requerido 'theme_dir' no se pasó
¿Está relacionado con Magento 2? ¿Y cómo se puede solucionar este problema?
Cuál es el mensaje de error:
El parámetro requerido 'theme_dir' no se pasó
¿Está relacionado con Magento 2? ¿Y cómo se puede solucionar este problema?
Respuestas:
Por si acaso, si está eliminando el tema directamente (no en modo Magento).
Luego sigue estos pasos.
Elimine el contenido de app/design/frontend/<Vendor>
(asegúrese de hacer una copia de seguridad primero).
Eliminar todo el contenido de la carpeta var/view_preprocessed
& pub/static/frontend
.
Vaya a su theme
tabla y elimine la entrada para su tema creado.
Después de esto...
Vaya a su core_config_data
tabla y busque theme
y obtendrá registros de ruta como design/theme/theme_id
reemplazar su identificación de tema predeterminada.
Vacía tu caché php bin/magento cache:flush
Avísame si aún tienes problemas después de eso.
theme
tabla, pero olvidé el core_config_data
valor.
setup:static-content:deploy
admin regresó a la interfaz de usuario.
pub/static/.htaccess
fue que no estaba allí. gracias
Este mensaje de error significa que tiene un tema configurado que no existe en el sistema de archivos (más).
Se puede solucionar fácilmente seleccionando un tema válido en su lugar. Vaya a Contenido -> Configuración , seleccione el alcance (global, sitio web, store_view) y cambie el tema. Después de hacerlo, también debe eliminarlo de Contenido -> Temas .
En mi caso, eliminé un tema secundario del directorio de proveedores. Pero la entrada DB todavía estaba allí en la theme
tabla. Vaya a la theme
tabla y elimine el registro que apunta al tema eliminado.
composer remove vendor/theme
?
rm -rf vendor/theme
Asegúrese de que la theme
entrada a la mesa y la magento\app\design\frontend\<Vendor>
entrada sean las mismas.
Si no, causa este problema.
Elimine temas innecesarios a través de Admin -> Contenido -> Diseño -> Temas . Bórralo. Por lo tanto, también eliminará la entrada de DB.
Si solo elimina la carpeta, entonces no funcionará
Este problema también puede ocurrir cuando está en un estado emulado, por ejemplo, en un comando CLI. Tuve una situación en la que no podía enviar un correo electrónico en la CLI, porque el comando de ajuste se ejecutaba en un estado emulado:
$this->appState->emulateAreaCode(AppArea::AREA_GLOBAL, function() {
// In this section the email was sent
});
En el ejemplo anterior, cuando el correo electrónico intentaba determinar su directorio de plantilla, se asignaba a global/Magento/backend
, que no existe. Para solucionar esto, tuve que agregarlo manualmente en mi constructor:
/** @var \Magento\Framework\Component\ComponentRegistrarInterface $componentRegistrar */
// Make the admin theme global accessible for sending e-mails:
\Magento\Framework\Component\ComponentRegistrar::register(
'theme',
'global/Magento/backend',
$componentRegistrar->getPath('theme', 'adminhtml/Magento/backend')
);
Después de esta solución, el problema se resolvió y pude enviar el correo electrónico.
Actualizar:
Cuando se trata de enviar correo utilizando la CLI, un enfoque más adecuado sería utilizar la emulación. Por ejemplo:
/** @var Magento\Framework\App\State $state */
$state->emulateAreaCode(
'frontend',
[$this->accountManagement, 'initiatePasswordReset'],
[
$customer->getEmail(),
AccountManagement::EMAIL_REMINDER,
$customer->getWebsiteId()
]
);
De esta manera no tienes que hacer tus pequeños trucos sucios.
@hakre es correcto. Tengo el mismo error Required parameter 'theme_dir' was not passed
. A continuación explico lo que hice para causar el error:
Creé un tema en el directorio app / design / frontend / MyVendorTheme2 / myThemeName2 , y luego lo configuré seleccionando el tema " MyVendorTheme2 - myThemeName2 " en el navegador Magento 2 Admin ( Tiendas> Configuración> CONFIGURACIÓN DE TEMAS> GENERAL> Diseño> Tema de diseño ) . Pero luego decidí mover el directorio " myThemeName2 " (que contiene mi nuevo tema) para que esté bajo una carpeta de proveedor diferente (existente) " MyVendorTheme1 " app / design / frontend / MyVendorTheme1 / myThemeName2 , y lo eliminé de la carpeta " MyVendorTheme2 " donde fue antes. Procedí a compilar los activos (es decir grunt clean
, grunt exec:myThemeName2
,grunt less:myThemeName2
), y luego abrí mi navegador en mi subdominio de tema (es decir, http: // myvirtualhostdomain: myport / myvendortheme1_mythemename2_magento2_quickstart / ).
Inicialmente recibí un error no especificado:
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number:
He activado el informe de errores al cambiar el nombre pub/errors/local.xml.sample
de local.xml
, y refrescado la página. Entonces me presentaron el error Required parameter 'theme_dir' was not passed
.
Resolví el error volviendo a mi navegador Magento 2 Admin ( Tiendas> Configuración> CONFIGURACIÓN DE TEMAS> GENERAL> Diseño> Tema de diseño ), que tenía mi tema de diseño anterior y ahora no válido, así que elegí el correcto.
Este error me ocurrió al guardar las imágenes del producto después de instalar un tema personalizado.
Tenía el tema personalizado que se estableció como un tipo virtual, que está en la base de datos en la tabla de temas, tipo = 1. En mi caso, ya no estaba usando el tema, así que lo eliminé de la tabla.
1 - Utilice el siguiente comando para identificar los temas en el panel de administración.
n98-magerun2 dev:theme:list
2 - Ejecute el comando para identificar los temas instalados:
ls -lha app/design/frontend/MyThemePackage/
3- Ejecute estos comandos a continuación para crear el tema que no existe:
n98-magerun2 deploy:mode:set developer
n98-magerun2 dev:console
make:theme frontend MyThemePackage MyThemeName
Si nada ha funcionado, no olvides consultar la sección de categorías. Hay una configuración de diseño allí también. Asegúrese de asignar el tema de diseño correcto. En mi caso, recibí el error solo en algunas categorías.
Puede eliminar el tema no utilizado de DB directamente ejecutando esta consulta a continuación:
delete from theme where theme_path in ('unusedtheme');
cuando un tema no utilizado es el tema no utilizado, y después de que limpie su caché
En algunos casos, elimina el tema personalizado de la manera adecuada, entonces también se enfrentará a este error. En esta situación:
1) you have to delete that entry/row from 'theme' table.
2) set value 1 (1 for blank theme 2 for Luma what ever you want to set) against 'design/theme/theme_id'
Actualice el error de página desaparecido.
Resolví el problema. En mi caso, el problema no era Magento2, sino una operación incorrecta que hice hace tiempo como sigue: creé un tema creando la ruta relativa en app / design / frontend / MyFolder / MyTheme y lo registré como se explica en la documentación en línea de Magento 2. Luego decidí cancelar el tema y, en su lugar, usar el comando apropiado: tema bin / magento: desinstalar frontend / MyFolder / MyTheme Eliminé las carpetas directamente. Esta no es una buena operación ya que la base de datos no se actualiza con la información debida. Solución: con un editor de base de datos como phpmyadmin, elimine el registro en la tabla "Tema" correspondiente a las carpetas eliminadas. ¡Espero que esto sea de ayuda!
Sé que esta pregunta es bastante antigua, pero como me encontré con esto hace poco y descubrí rápidamente cuál era mi problema, decidí publicar mi respuesta como un recordatorio para todos aquellos que, como yo, usan PhpStorm para trabajar con Magento: recuerde revisar sus archivos cuando cambie de sucursales.
En mi caso, la rama en la que estaba trabajando no tenía los archivos de tema requeridos (fueron escondidos por PhpStorm cuando cambié de la rama de tema a la rama maestra) porque aún no se han fusionado, por lo tanto, el error.
Espero que esto pueda ayudar a alguien.
elimine todos los archivos temporales del tema que no está utilizando en el sitio web y elimine también del tema que no está utilizando y ejecute el caché: flush