Рейтинг:1

Как решить эту ошибку «Класс \Drupal\simple_sitemap\Controller\SimpleSitemapController не существует»

флаг tr

Я получил эту ошибку, которая меня удивила, поскольку у меня ее нет в моей локальной среде. Что я сделал, так это сжал каталог проекта и загрузил его в свой файловый менеджер cpanel, а затем извлек его. Затем я импортировал файл sql в phpmyadmin и сделал учетные данные такими же, как на моем рабочем сервере.

Когда я открываю свой сайт, он работает на первой странице и на других страницах, созданных с помощью страниц с типом контента Basic. Однако, когда я перехожу к /user/login, появляется эта ошибка. Он также появился на страницах веб-форм.

Сайт обнаружил непредвиденную ошибку. Пожалуйста, повторите попытку позже. Ошибка: класс 'Drupal\simple_sitemap\Queue\SimpleSitemapQueue' не найден в Drupal\Component\DependencyInjection\Container->createService() (строка 262 core/lib/Drupal/Component/DependencyInjection/Container.php). Drupal\Component\DependencyInjection\Container->createService(Array, 'simple_sitemap.queue') (строка: 176) Drupal\Component\DependencyInjection\Container->get('simple_sitemap.queue', 1) (строка: 437) Drupal\Component\DependencyInjection\Container->resolveServicesAndParameters(Array) (строка: 240) Drupal\Component\DependencyInjection\Container->createService(Array, 'simple_sitemap.queue_worker') (строка: 176) Drupal\Component\DependencyInjection\Container->get('simple_sitemap.queue_worker', 1) (строка: 437) Drupal\Component\DependencyInjection\Container->resolveServicesAndParameters(Array) (строка: 240) Drupal\Component\DependencyInjection\Container->createService(Array, 'simple_sitemap.generator') (строка: 176) Drupal\Component\DependencyInjection\Container->get('simple_sitemap.generator', 1) (строка: 437) Drupal\Component\DependencyInjection\Container->resolveServicesAndParameters(Array) (строка: 240) Drupal\Component\DependencyInjection\Container->createService(Array, 'simple_sitemap.form_helper') (строка: 176) Drupal\Component\DependencyInjection\Container->get('simple_sitemap.form_helper') (строка: 198) Drupal::service('simple_sitemap.form_helper') (строка: 43) simple_sitemap_form_alter (массив, объект, 'webform_submission_contact_node_25_add_form') (строка: 539) Drupal\Core\Extension\ModuleHandler->alter('form', Array, Object, 'webform_submission_contact_node_25_add_form') (строка: 836) Drupal\Core\Form\FormBuilder->prepareForm('webform_submission_contact_node_25_add_form', Array, Object) (строка: 279) Drupal\Core\Form\FormBuilder->buildForm(Object, Object) (строка: 48) Drupal\Core\Entity\EntityFormBuilder->getForm(Объект, 'добавить') (Строка: 1230) Drupal\webform\Entity\Webform->getSubmissionForm() (строка: 18) Drupal\webform\WebformEntityViewBuilder->view(Object, 'default') (строка: 165) Drupal\entity_block\Plugin\Block\EntityBlock->build() (строка: 105) Drupal\layout_builder\EventSubscriber\BlockComponentRenderArray->onBuildRender(Объект, 'section_component.build.render_array', Объект) call_user_func (массив, объект, 'section_component.build.render_array', объект) (строка: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'section_component.build.render_array') (строка: 90) Drupal\layout_builder\SectionComponent->toRenderArray(Array, ) (строка: 86) Drupal\layout_builder\Section->toRenderArray(Array) (строка: 317) Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay->buildSections(Object) (строка: 276) Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay->buildMultiple(Array) (строка: 340) Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'полный') (строка: 24) Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'полный') (строка: 282) Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (строка: 239) Drupal\Core\Entity\EntityViewBuilder->сборка(массив) call_user_func_array (массив, массив) (строка: 101) Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Обратные вызовы Render #pre_render должны быть методами класса, реализующего \Drupal\Core\Security\TrustedCallbackInterface, или быть анонимной функцией. Обратный вызов был %s. См. https://www.drupal.org/node/2966725', 'исключение', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Строка: 786) Drupal\Core\Render\Renderer->doCallback('#pre_render', Массив, Массив) (Строка: 377) Drupal\Core\Render\Renderer->doRender(Array, ) (строка: 201) Drupal\Core\Render\Renderer->render(Array, ) (строка: 241) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent{закрытие}() (строка: 578) Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (строка: 242) Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (строка: 132) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (строка: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func (массив, объект, 'kernel.view', объект) (строка: 142) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (строка: 163) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (строка: 80) Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (строка: 57) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (строка: 47) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (строка: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (строка: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (строка: 82) Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (строка: 47) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (строка: 52) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (строка: 23) Stack\StackedHttpKernel->дескриптор (объект, 1, 1) (строка: 717) Drupal\Core\DrupalKernel->дескриптор (объект) (строка: 19)

Я искал и нашел несколько статей, в которых говорится, что очистка кеша решит проблему. Я не могу войти в интерфейс, поэтому я запустил /core/rebuild.php, но это не решает проблему.

Когда я побежал драш кр в командной строке я получил эту ошибку.

В строке EntityResolverManager.php 128:
Класс \Drupal\simple_sitemap\Controller\SimpleSitemapController не существует

В моей локальной среде я использовал Lando с Varbase, который основан на Drupal 9.

Рейтинг:2
флаг sd

Случилось так, что мы (сопровождающие модуль) переименовали несколько имен классов из Простая карта сайта к SimpleSitemap (Верблюжий кейс). По-видимому, некоторые среды, нечувствительные к регистру, такие как Windows и в некоторых случаях OSX, игнорируют изменения регистра букв.

Если вы передаете файлы через FTP, решение состоит в том, чтобы убедиться, что файлы поступают с правильным регистром, например, удаление старых файлов вместо их перезаписи.

Если вы используете git для отправки изменений и у вас есть эта проблема, убедитесь, что на вашем хост-компьютере есть git игнорировать установлен в ЛОЖЬ: git config core.ignorecase false

Существует билет поддержки вы можете прочитать пару решений.

Рейтинг:0
флаг nr

Cpanel усложняет задачу. Но, безусловно, можно запросить у вашего хостинг-провайдера доступ по Secure SHell (SSH) к серверу Cpanel. Получив это, вы можете скачать Drush — я не ожидаю, что Composer будет у вас на Cpanel, поэтому пропустите шаг и загрузите Drush PHAR, соответствующий вашей версии Drupal (вероятно, последнюю версию Drush 10, если вы все еще не используете Drupal). 7 или ниже). Если у вас есть Drush, у вас будет множество опций (восстановление кешей, применение обновлений схемы базы данных и исправление различных вещей), которые недоступны через веб-браузер.

Поскольку ошибка связана с модулем Simple Sitemap, вы можете попробовать:

$ drush pm-uninstall simple_sitemap

Это должно заставить ваш сайт снова загрузиться.Затем экспортируйте базу данных с рабочего сайта и импортируйте ее в локальную среду, чтобы посмотреть, сможете ли вы воспроизвести ошибку.

Часто подобные проблемы возникают из-за применения обновлений схемы базы данных в вашей локальной среде и забывания сделать это снова в рабочей среде. Это также может быть вызвано обновлением кода, даже пользовательского кода, если он находится в этом модуле, но наиболее вероятное объяснение заключается в том, что вам просто нужно запустить драш updb на сервере.

Кроме того, такая ошибка обычно означает, что вы не развертываете конфигурацию при развертывании кода.

Удачи!

Kaka Awira avatar
флаг tr
Мне удалось установить drush 10 и попытаться очистить кеш, но проблема осталась, так как я до сих пор не могу очистить кеш с помощью drush. Однако то, что я сделал, решило проблему, так это то, что я удалил Simple XML Sitemap из моей локальной разработки, а затем загрузил сайт в cpanel. Спасибо, вы дали мне подсказку сделать то, что я сделал, и проблема исчезла.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.