Ошибки при обновлении на Drupal 9.3

Главные вкладки

Аватар пользователя Babich Babich 10 декабря 2021 в 8:32

Прошу помощи. После обновления на Drupal 9.3 перестал открываться сайт. Работает только админка. Думаю нужно внести изменения в тему. Потому как при переключении на стандартную тему сайт начинает работать. вот логи:

TypeError: Argument 1 passed to Drupal\Core\File\FileUrlGenerator::generateString() must be of the type string, null given, called in /home/detaili5/public_html/web/sites/default/files/php/twig/61b2e57a20902_block.html.twig_FhzlSWux5DG3ezfhG6fT2xEfp/IHnuyPuRlxB2v1vWfMXLZeHFkcY6S15oe90D5S1b9KI.php on line 44 в Drupal\Core\File\FileUrlGenerator->generateString() (строка 58 из /home/detaili5/public_html/web/core/lib/Drupal/Core/File/FileUrlGenerator.php)
#0 /home/detaili5/public_html/web/sites/default/files/php/twig/61b2e57a20902_block.html.twig_FhzlSWux5DG3ezfhG6fT2xEfp/IHnuyPuRlxB2v1vWfMXLZeHFkcY6S15oe90D5S1b9KI.php(44): Drupal\Core\File\FileUrlGenerator->generateString(NULL)
#1 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(405): __TwigTemplate_d2c1b6d108e2ea916df711c68e15819394bb0527af128ad68085ebf6e81c33bf->doDisplay(Array, Array)
#2 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling(Array, Array)
#3 /home/detaili5/public_html/web/sites/default/files/php/twig/61b2e57a20902_block--system-branding-bl_gqZupaPEjjjCPzaztUQcg4Qt5/vuy-YEN9RF8W8GrvsM1YrhVE02wHlMzN68m0oOI3MVU.php(44): Twig\Template->display(Array, Array)
#4 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(405): __TwigTemplate_03065edb5474c45ea671dab07271bb08ba961dc1daf38e52ffb13b22f27019f7->doDisplay(Array, Array)
#5 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling(Array, Array)
#6 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(390): Twig\Template->display(Array)
#7 /home/detaili5/public_html/web/core/themes/engines/twig/twig.engine(55): Twig\Template->render(Array)
#8 /home/detaili5/public_html/web/core/lib/Drupal/Core/Theme/ThemeManager.php(384): twig_render_template('themes/podborav...', Array)
#9 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(422): Drupal\Core\Theme\ThemeManager->render('block', Array)
#10 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(435): Drupal\Core\Render\Renderer->doRender(Array)
#11 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(201): Drupal\Core\Render\Renderer->doRender(Array, false)
#12 /home/detaili5/public_html/web/core/lib/Drupal/Core/Template/TwigExtension.php(463): Drupal\Core\Render\Renderer->render(Array)
#13 /home/detaili5/public_html/web/sites/default/files/php/twig/61b2e57a20902_page.html.twig_yc2YLuZpWAvBNHQGMuj1YDibY/WG5rW9RxIpaSiUmoL6CTWuntEuenNTgpmTeI72VqlVg.php(91): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true)
#14 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(405): __TwigTemplate_466353ddb24747b57ab77efecdbb3d9eb733246757d0bf68c34becf1ce280ed5->doDisplay(Array, Array)
#15 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling(Array, Array)
#16 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(390): Twig\Template->display(Array)
#17 /home/detaili5/public_html/web/core/themes/engines/twig/twig.engine(55): Twig\Template->render(Array)
#18 /home/detaili5/public_html/web/core/lib/Drupal/Core/Theme/ThemeManager.php(384): twig_render_template('themes/podborav...', Array)
#19 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(422): Drupal\Core\Theme\ThemeManager->render('page', Array)
#20 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(201): Drupal\Core\Render\Renderer->doRender(Array, false)
#21 /home/detaili5/public_html/web/core/lib/Drupal/Core/Template/TwigExtension.php(463): Drupal\Core\Render\Renderer->render(Array)
#22 /home/detaili5/public_html/web/sites/default/files/php/twig/61b2e57a20902_html.html.twig_A95GGAgnbgSwkc_qFPlrzY_Bd/k3MX2b7fBLBQ3EW0b6BqBFUJlTFt94Rdzt6QAXGRWOU.php(158): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true)
#23 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(405): __TwigTemplate_d3d4ddabb04deedea8f48e49ee650d5b60fa91ffce9134bebdf82830dfd509ab->doDisplay(Array, Array)
#24 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling(Array, Array)
#25 /home/detaili5/public_html/vendor/twig/twig/src/Template.php(390): Twig\Template->display(Array)
#26 /home/detaili5/public_html/web/core/themes/engines/twig/twig.engine(55): Twig\Template->render(Array)
#27 /home/detaili5/public_html/web/core/lib/Drupal/Core/Theme/ThemeManager.php(384): twig_render_template('themes/podborav...', Array)
#28 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(422): Drupal\Core\Theme\ThemeManager->render('html', Array)
#29 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(201): Drupal\Core\Render\Renderer->doRender(Array, false)
#30 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(162): Drupal\Core\Render\Renderer->render(Array)
#31 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/Renderer.php(564): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}()
#32 /home/detaili5/public_html/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(163): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#33 /home/detaili5/public_html/web/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php(90): Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch))
#34 [internal function]: Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#35 /home/detaili5/public_html/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(142): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#36 /home/detaili5/public_html/vendor/symfony/http-kernel/HttpKernel.php(163): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view')
#37 /home/detaili5/public_html/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#38 /home/detaili5/public_html/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#39 /home/detaili5/public_html/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#40 /home/detaili5/public_html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#41 /home/detaili5/public_html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#42 /home/detaili5/public_html/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#43 /home/detaili5/public_html/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#44 /home/detaili5/public_html/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#45 /home/detaili5/public_html/web/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#46 /home/detaili5/public_html/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#47 {main}

Лучший ответ

Аватар пользователя ivnish ivnish 10 декабря 2021 в 8:56

У вас там на шаблон блока твиг ругается. Проверяйте шаблоны и функции препроцессов. Какой-то код нужно обновить для совместимости с 9.3

Комментарии

Аватар пользователя Babich Babich 10 декабря 2021 в 8:55

Своя тема сайта. Я думаю в ней где-то нужны правки. потому что когда по умолчанию ставишь стандартную сайт начинает открываться.

Аватар пользователя ivnish ivnish 10 декабря 2021 в 8:56

У вас там на шаблон блока твиг ругается. Проверяйте шаблоны и функции препроцессов. Какой-то код нужно обновить для совместимости с 9.3

Аватар пользователя Babich Babich 10 декабря 2021 в 8:59

В том и интерес, какой. Написано обратно совместимо все. За исключением.

Шаблоны field-node-title.html.twig, field-node-created.html.twig и field-node-uid.html.twig были изменены, чтобы отображать эти поля так, как они настроены разработчиком сайта. Темы, которые включают эти шаблоны, должны добавить к ним это изменение.

Я эти файлы в шаблоне не использовал. Даже потом скопировал их из стандартной темы. Все равно не запустилось.

Аватар пользователя Babich Babich 10 декабря 2021 в 9:38

Поступил как вы сказали. Удалил все .html.twig из templates. Путем исключения понял, что проблема в двух файлах.
block.html.twig
block--system-menu-block.html.twig

Аватар пользователя marassa marassa 10 декабря 2021 в 9:41

Осталось заглянуть в эти файлы и попробовать найти потенциально стрёмные места. Судя по ошибкам, ругань идёт на функцию генерации строкового значения URL'а, вот надо и искать места где идет явное обращение к каким-то URL'ам.

Аватар пользователя Babich Babich 10 декабря 2021 в 10:13

Сначала просто удалил эти строки. Ничего не поменялось на первый взгляд. Сейчас использовал конструкцию, как у вас. Тоже работает.

Аватар пользователя Babich Babich 10 декабря 2021 в 10:17

Не так выразился. В смысле заработало и функционально ничего не изменилось от удаления этой строчки. Smile

Аватар пользователя marassa marassa 10 декабря 2021 в 10:24

OK. Я совсем не эксперт в темах, но моя дилетантская версия такая:
1. file_url(node) - это какая-то пурга. Возможно до версии 9.3 Друпал был терпим к пурге на входе и молча возвращал пустую строку (поэтому всё и работало), теперь стал на пургу ругаться.
2. Нужна ли вообще эта строка? Зависит от того, используется ли переменная theme_path где-то далее в шаблоне или нет. Не исключено, что инициализация этой переменной добавлена "на всякий случай" в порядке общей инициализации среды, а на самом деле в этом шаблоне она нигде и не нужна. Тогда можно удалить.
Но в любом случае правильнее всего обратиться за комментариями к автору темы.

Аватар пользователя Babich Babich 10 декабря 2021 в 10:27

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

Аватар пользователя ivnish ivnish 10 декабря 2021 в 9:43

Я ж вам сразу сказал проверить шаблоны связанные с блоками, потому что именно на них ругается твиг Scratch one-s head