![]()
Dianika
3 сентября 2017 в 15:16
Приветствую.
/admin/config/system/site-information выдаёт ошибку «На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.»
В журнале нашёл только это: InvalidArgumentException: Source path has to start with a slash. in DrupalCorePathAliasManager->getAliasByPath() (line 186 of /home/c/cn35088/public_html/core/lib/Drupal/Core/Path/AliasManager.php).
Прошу помощи, что бы разобраться в данной проблеме.
- Drupal8
- Есть вопрос
- Решение проблем
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Dianika
6 сентября 2017 в 13:23
Что, не кто не может подсказать в чём дело?
fairrandir
6 сентября 2017 в 13:27
Хотя бы версию Drupal назовите.
Dianika
6 сентября 2017 в 13:28
Studio VIZA
6 сентября 2017 в 13:38
1
Dianika
6 сентября 2017 в 13:38
/**
* {@inheritdoc}
*/
public function getAliasByPath($path, $langcode = NULL) {
if ($path[0] !== ‘/’) {
throw new InvalidArgumentException(sprintf(‘Source path %s has to start with a slash.’, $path));
}
И где тут и что надо прописать в Друпале 8 последней версии, что бы сбросить ошибку?
Dianika
6 сентября 2017 в 13:54
Просто на просто не понимаю, что хотите сказать мне Вы и что вообще не нравится сайту, что у него каждый раз вылетает ошибка.
Studio VIZA
6 сентября 2017 в 14:13
Astraflex написал:
Исходный путь должен начинаться с косой чертой.
Dianika
6 сентября 2017 в 14:15
1
Да вы издеваетесь))) Ребята, да всё это я понимаю) И умею читать с детства)
Хорошо… Где этот исходный путь находится, где он, путь. должен начинаться с косой черты?)
Studio VIZA
6 сентября 2017 в 14:30
На копии обновить ядро, мб? Какая версия сейчас точно?
fairrandir
6 сентября 2017 в 14:32
Версия 8, это конечно хорошо, но не помешала бы хотя бы вторая цифра после 8. 
Dianika
6 сентября 2017 в 14:57
Кстати да, у меня при клике на логотип сайта выходит пустая страница с «Запрашиваемая страница не найдена.»
Но уверяю вас, ошибка была ещё до проблем с главной страницей.
bumble
6 сентября 2017 в 15:50
1
drush cset system.site page.front /node
Dianika
6 сентября 2017 в 14:51
Dianika
8 сентября 2017 в 17:17
Давайте начнём с начала) Все говорят, я уверен умные вещи, но для меня на самом деле эта «ошибка» камень преткновения)
И так, сайт хочет что бы было всё чин чинарём и из-за этого выдаёт ошибку, что ему что то не нравится. Хорошо. Только объясните вот что: почему указывая путь к файлу, я не нахожу там того кода, где надо прописать слэшь?
Далее.
«Могу только предположить, что на этой странице должна выводиться инфа о том, какую страницу выводить в качестве главной, а у вас в поле там скорее всего пустое значение»
Где мне надо искать это «поле» с пустым значением?
fairrandir
8 сентября 2017 в 18:05
1
Попробуйте поставьте на том же аккаунте на хостинге чистый друпал той же версии. Если будет падать с аналогичной ошибкой — пинайте хостера.
Здесь было много буков, но я их стёр ещё до отправки комментария, чтобы не побанили.
Dianika
9 сентября 2017 в 10:20
«Хостер» говорит вот что: «В данном случае мы рекомендуем Вам обратиться в поддержку используемой Вами CMS или к тематическим форумам.
Если у Вас появятся дополнительные вопросы по работе хостинга, пожалуйста, обращайтесь.»
Dianika
9 сентября 2017 в 10:27
Quote:
тогда либо, как писал @bumble через drush, либо ручками в бд
Хорошо.
«passthru — Выполняет внешнюю программу и отображает необработанный вывод»
И что мне это даст в решении данной проблемы?
multpix
9 сентября 2017 в 10:57
1
@bumble четко указал, от чего начать копать:
drush en config
drush config-get system.site page.front
хоть бы озвучили — какое там значение
У себя смоделировал ситуацию, искорявил значение на node
получил ошибку
Uncaught PHP Exception InvalidArgumentException: «Source path node has to start with a slash.» at /home/devel/projects/drupal/8.x/drupal8.dev/core/lib/Drupal/Core/Path/AliasManager.php line 186
Задал нормальное значение
drush config-set system.site page.front /node
И все чудесно по адресу /admin/config/system/site-information
Итог:
@Astraflex, читать:
https://drushcommands.com/drush-8x/config/config-get/
https://drushcommands.com/drush-8x/config/config-set/
Посмотреть текущее значение, задать верное значение.
Не нужно в базу руками!
Если будут проблемы — приходите сюда с описанием.
upd
ssh доступ к хостингу надеюсь есть?
drush можно быстро получить так,
выполнить в корне
composer require drush/drush
а вызвать можно будет так:
./vendor/drush/drush/drush status
к примеру.
Dianika
10 сентября 2017 в 10:59
Quote:
В общем, как я и предполагал — ТС нахимичил c front page. Смею заметить, что большого ума не не надо было, чтобы понять, в чём причина. Вывод — учите мат. часть.
Этого не может быть. «Нахимичить» я явно не мог, потому что не лез ни куда. Говорю же, на САМОМ сайте я лишь поставил свой логотип сайта. Всё. После этого начались все эти проблемы. Так что. если проблема в том, что вы пишите, то она явно произошла не из-за меня.
multpix
10 сентября 2017 в 11:07
1
но мы же не крайних ищем а решение проблемы)))
Dianika
10 сентября 2017 в 11:13
multpix wrote:
но мы же не крайних ищем а решение проблемы)))
Пока решение проблемы самостоятельно, не представляется возможным. А самое главное, что я не понимаю, от куда эта «проблема» взялась? Вот что самое интересное.
«На веб-сайте произошла неожиданная ошибка. Пожалуйста, повторите попытку позже».
Я получаю эту ошибку с Drupal 7.
На веб-сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.
Как я могу получить дополнительную информацию об этой ошибке? Есть ли какой-нибудь отчет или журнал, чтобы понять, что произошло? Журнал PHP не сообщает об ошибках.
Как я могу отключить это сообщение и получить более полезное для отладки?
12 answers
Эта ошибка возникает из-за неперехваченного исключения PHP. Drupal улавливает исключения, поэтому пользователю не отображается уродливое сообщение об ошибке PHP. Вы можете найти информацию об исключении в ссылке «Последние сообщения журнала» в отчетах (или попробуйте этот путь: /admin/отчеты/dblog). Убедитесь, что модуль «Ведение журнала базы данных» включен, потому что этот модуль предоставляет этот отчет.
Вы увидите все сгенерированные внутренние сообщения. Отфильтруйте по типу «PHP» и серьезности «ошибка», и вы, вероятно, найдете сообщение о неперехваченном исключении. Это и есть причина вашей проблемы. Теперь у вас есть больше информации, чтобы вы могли это исправить.
29
Author: sanzante, 2019-06-11 08:41:37
ПРОСТОЙ СПОСОБ для Drupal 8,
Если вы больше не можете войти в систему, чтобы получить доступ к последним сообщениям журнала, как описано в принятом ответе.
Откройте файл /sites/default/settings.php с помощью редактора или ftp-клиента и добавьте следующую строку:
$config['system.logging']['error_level'] = 'verbose';
После перезагрузки страницы вы увидите полное сообщение об ошибке вместо обычного «На веб-сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже».
19
Author: 4k4, 2018-10-15 16:17:38
Drupal 6 и 7
Если вы используете Drush, просто сделайте drush vset error_level 1.
В противном случае перейдите к «/admin/config/development/logging» и измените настройку на «Ошибки и предупреждения»
Drupal 8
Вместо drush vset/vget/vdel, вы можете использовать cset/cget/cdel для значений конфигурации и sset/sget/sdel для государственных ценностей.
16
Author: coak, 2019-07-21 10:42:30
ПРОСТОЙ СПОСОБ
Отредактируйте свой settings.php и добавьте туда строку (особенно на своем сайте разработчика, вы можете просто оставить ее включенной)
$conf['error_level'] = 1;
Drush требует, чтобы вы могли загрузить базу данных.
Эта ошибка возникает из-за _drupal_log_error().
В качестве быстрого решения для разработки вы можете обновить эту функцию, чтобы предоставить более подробные сообщения об ошибках, но убедитесь, что вы полностью изменили ее до того, как сайт заработает:)
3
Author: Clive, 2012-11-07 09:50:01
Проверьте таблицу watchdog в MySQL. Вы можете загрузить большой двоичный объект (столбец variables) и открыть его с помощью блокнота. Он покажет вам сериализованный объект с вашей ошибкой.
Проверьте dblog. Это лучшее место для поиска ошибок на веб-сайте Drupal. Также проверьте консоль JS, чтобы выявить дополнительные ошибки в вашем браузере.
0
Author: Binny, 2012-11-07 09:35:50
Попробуйте это:
Уровень ошибок
admin menu equivalent: admin/config/development/logging
drush command: drush vset -y error_level <value>
values:
0: none
1: errors and warnings
2: all
0
Author: ravyg, 2013-11-07 09:44:03
Чтобы сделать ошибки видимыми на вашем веб-сайте Drupal, найдите index.php файл в главном каталоге вашего сайта. Открыть index.php и добавьте этот код непосредственно перед самой первой строкой файла:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Вы также можете попытаться решить проблемы Drupal С помощью журналов ошибок, как описано здесь..
Это старая тема, но, поскольку я недавно столкнулся с такой же проблемой, предоставляя свои входные данные. Я не смог получить доступ ни к одному из путей Drupal, так как я всегда получал эту ошибку, несмотря ни на что. Это начало происходить после того, как я обновил представление, поэтому я знал, что нужно сделать, но не смог открыть представление. Таким образом, я просмотрел журналы сервера Apache. Помимо решения, приведенного выше, такого как просмотр drush и dblogs, может быть полезно вместо этого заглянуть на сервер Apache журналы, особенно когда вы не можете получить доступ ни к одному из путей приложения. Они обычно присутствуют в файле logserror.log и будут содержать подробную информацию о необработанном исключении и месте его создания и т.д. В качестве быстрого решения вы можете прокомментировать код, который вызывает исключение, и внести обновления в приложение. В моем случае я прокомментировал сообщение с кодом, которое смог просмотреть и внести необходимые обновления. Надеюсь, это поможет кому-то в некоторых подобных ситуациях
0
Author: MAJ, 2016-11-04 02:04:22
Это очень интересно, но если вы откроете исходный код страницы (CTRL-U), то все предупреждения и сообщения об ошибках будут там, они просто находятся в скрытом элементе. Поиск element-invisible.
Редактировать: $conf['error_level'] = 1; также следует поместить в файл settings.php.
0
Author: endo64, 2019-05-30 06:37:58
Если у вас установлены какие-либо новые модули, которые могут быть несовместимы с вашим drupal
, пожалуйста, убедитесь, что эти модули удалены и запущены снова.
Например: я установил модуль макета страницы, он не подходит для этого, тогда я столкнулся с этой проблемой в браузере после того, как я удалил эти модули из своего проекта, это отлично работает для меня.
в местоположении проекта выберите модулимакет страницы.
удалите отсюда неподдерживаемый каталог.
Спасибо.
при обновлении drupal с 6 до 7 я получаю не очень полезное сообщение «На веб-сайте произошла непредвиденная ошибка. Повторите попытку позже». каждый раз перехожу на определенные страницы. пример) / admin / config
Как лучше всего выяснить причину фатальной ошибки, чтобы исправить ее?
Все, о чем я могу думать прямо сейчас, — это начать отключать добавленные модули до тех пор, пока эта страница не заработает, или просматривать журналы.
Спасибо.
6 ответов
Лучший ответ
Очистив журналы в /admin/reports/dblog и затем перезагрузив сломанную страницу, я легко смог идентифицировать неисправный модуль, когда перепроверил журнал.
Сайт сейчас работает нормально 🙂
11
brian_d
20 Янв 2011 в 04:52
Вам определенно следует отключить все модули contrib для выполнения обновления. Затем включите их по несколько раз после того, как они были заменены версией D7. При замене модуля обязательно очистите весь каталог модуля, на случай, если остались старые файлы.
Это должно помочь сузить проблему и не забудьте проверить журнал ошибок php, если вы что-то там найдете. (Хотя это обычно в случае с Белым экраном смерти.)
3
cleaver
19 Янв 2011 в 18:38
Как упоминалось в gyozo, если вы не можете войти на сайт, отладка может быть затруднена.
Тогда, наверное, ты мог бы попробовать
- Войдите в базу данных и запустите
delete from watchdog; - Обновите страницу
- Затем выполните запрос к базе данных
select variables from watchdog; - Обратите внимание на текст рядом с сообщением
0
Gokul N K
4 Сен 2013 в 12:19
Отвечаю на ветку 8-летней давности. Но хотел поделиться своими впечатлениями, чтобы исправить эту ошибку. Я использую Drupal 8. *
Я столкнулся с той же ошибкой, когда попытался очистить кеш (из производительности). Я пробовал несколько вещей, упомянутых в большинстве блогов или справки по drupal.
В конце концов я узнал, что в моих файлах тем Drupal 8 была некоторая проблема с форматированием YML. Я удалил вкладки и проверил свои файлы YML из онлайн-валидатора YML.
0
Mangesh Sathe
31 Янв 2019 в 19:22
В Drupal 8.7 это можно сделать в строке 126 core / lib / Drupal / Core / EventSubscriber / FinalExceptionSubscriber.php:
$content = $this->t('The website encountered an error. Please try again later.' . var_dump($error));
0
André Angelantoni
1 Июл 2019 в 20:34
Если журнал ошибок dlog / watchdog и php не работает, попробуйте следующее:
Перейдите в строку комментария /includes/error.inc 245
print theme('maintenance_page', array('content' => t('The website encountered an unexpected error. Please try again later.')));
И положи это
print theme('maintenance_page', array('content' => t('The website encountered an unexpected error. Please try again later.'.$fatal.' '.var_export($error,true))));
Очень похоже, вы помещаете var_export ($ error, true)) в конец ошибки
20
Stefano Caravana
1 Окт 2013 в 09:50
I wondered if I can get some advice regarding working with Drupal 8. I’ve tried installation after installation and sooner rather than later I’m effectively bricking the installs by just installing third party modules.
Can someone please advise how I can debug effectively? I’m not a dev but can do some basic dev tasks.
I used to use for Drupal 7 in settings.php:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
However, I have no luck with this in Drupal 8.
It’s getting incredibly frustrating when trying out new modules for this constantly to be happening.
Log file reads (which I’ve Googled) prior to asking.
[proxy_fcgi:error] [pid 15594:tid 139919129229056] [client
79.70.230.243:47902] AH01071: Got error ‘PHP message: Uncaught PHP Exception
DrupalComponentPluginExceptionPluginNotFoundException: «The
«file_type» entity type does not exist.» at
core/lib/Drupal/Core/Entity/EntityTypeManager.php line 125n’
A second site outputs:
[pid 15594:tid 139919154407168] [client 79.70.230.243:49570] AH01071:
Got error ‘PHP message: Uncaught PHP Exception
DrupalComponentPluginExceptionPluginNotFoundException: «The
«file_type» entity type does not exist.» at
core/lib/Drupal/Core/Entity/EntityTypeManager.php line 125n’,
referer: http://domainname/user/login
Despite me having the above information, I really don’t know what is causing this. Furthermore, I never do as reading the log files and following those error messages (like the above ones) doesn’t clearly illustrate which module is causing the problem.
I wondered if I can get some advice regarding working with Drupal 8. I’ve tried installation after installation and sooner rather than later I’m effectively bricking the installs by just installing third party modules.
Can someone please advise how I can debug effectively? I’m not a dev but can do some basic dev tasks.
I used to use for Drupal 7 in settings.php:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
However, I have no luck with this in Drupal 8.
It’s getting incredibly frustrating when trying out new modules for this constantly to be happening.
Log file reads (which I’ve Googled) prior to asking.
[proxy_fcgi:error] [pid 15594:tid 139919129229056] [client
79.70.230.243:47902] AH01071: Got error ‘PHP message: Uncaught PHP Exception
DrupalComponentPluginExceptionPluginNotFoundException: «The
«file_type» entity type does not exist.» at
core/lib/Drupal/Core/Entity/EntityTypeManager.php line 125n’
A second site outputs:
[pid 15594:tid 139919154407168] [client 79.70.230.243:49570] AH01071:
Got error ‘PHP message: Uncaught PHP Exception
DrupalComponentPluginExceptionPluginNotFoundException: «The
«file_type» entity type does not exist.» at
core/lib/Drupal/Core/Entity/EntityTypeManager.php line 125n’,
referer: http://domainname/user/login
Despite me having the above information, I really don’t know what is causing this. Furthermore, I never do as reading the log files and following those error messages (like the above ones) doesn’t clearly illustrate which module is causing the problem.
Доброго дня.
Очень прошу помощи, так как уже самому не понять, а проект в стадии тестирования (то есть уже готов и отступать уже тупо некуда).
Есть сайт на Drupal 8.1.1 (свежий). Установлены модули: Admin Toolbar 8.x-1.15, Chaos tool suite (ctools) 8.x-3.0-alpha26, Field collection 8.x-1.0-alpha1, Image URL Formatter 8.x-1.0-beta1, Pathauto 8.x-1.0-alpha3, Token 8.x-1.0-alpha2. Тема — стандартная Bartik (скопировал из /core/themes в папку /themes/), админка — Seven.
Сайт: это админка для манагеров, они забивают туда предложения по туризму, потом встроенный модуль RESTful (через представление Views) формирует JSON (с нужными полями) и им пользуются несколько сторонних сайтов.
Проблема: первые 20-30 нод (предложений) были добавлены без особых проблем. Далее, сайт не трогали (в том числе и я) весь вчерашний день (то есть последняя активность на сайте — в пятницу). Сегодня же, при попытке просмотра любой ноды — вижу белый экран и ошибку на русском «На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.». И что делать — просто не представляю, так как логи пустые..
Тоже самое и после добавления новой ноды. При этом нода не создаётся, сразу как нажимаю «Сохранить» сразу же эта ошибка!
Очень прошу, кто сталкивался или уже работает в D8 — подскажите в чём дело, как это лечить. Ибо, как уже говорил ранее, проект в стадии тестирования и всякие «переходи на D7 + разные модули для REST API» — уже не прокатят.
Вопрос задан 29.05.2016 — 20:21
«Сайт обнаружил непредвиденную ошибку. Пожалуйста, попробуйте позже.»
У меня есть эта ошибка с Drupal 7
-
Как я могу получить больше информации об этой ошибке? Любой отчет, любой журнал где-нибудь? Ничего в php-ошибках.
-
как я могу отключить это сообщение и получить более полезное для отладки?
Примечание : мой вопрос НЕ «как я могу решить эту проблему»
Ответы:
Эта ошибка происходит из-за необработанного исключения PHP . Drupal перехватывает исключения, поэтому пользователю не отображается сообщение об ошибке PHP. Вы можете найти информацию об исключении в ссылке «Недавние сообщения журнала» в отчетах (или попробуйте этот путь: / admin / reports / dblog). Убедитесь, что модуль «Регистрация в базе данных» включен, так как этот модуль предоставляет этот отчет.
Вы увидите все внутренние сообщения, которые были сгенерированы. Отфильтруйте по типу ‘PHP’ и серьезности ‘error’, и вы, вероятно, найдете сообщение о необработанном исключении. Это вызывает вашу проблему. Теперь у вас есть больше информации, чтобы вы могли это исправить.
Drupal 6 & 7
Если вы используете Drush, просто делайте drush vset error_level 1.
В противном случае перейдите к « /admin/config/development/logging» и измените настройку на «Ошибки и предупреждения».
Drupal 8
Вместо drush vset/ vget/ vdelвы можете использовать cset/ cget/ cdelдля значений конфигурации и sset/ sget/ sdelдля значений состояния.
ПРОСТОЙ СПОСОБ
Отредактируйте ваш файл settings.php и добавьте туда строку (особенно на вашем сайте разработчиков, вы можете просто сохранить это)
$conf['error_level'] = 1;
drush требует, чтобы вы были в состоянии загрузить базу данных.
EASY WAY для Drupal 8 ,
если вы не можете войти, чтобы получить доступ к последним сообщениям журнала, как описано в принятом ответе.
Откройте файл /sites/default/settings.phpс помощью редактора или FTP-клиента и добавьте следующую строку:
$config['system.logging']['error_level'] = 'verbose';
После перезагрузки страницы вы увидите полное сообщение об ошибке вместо общего: «На веб-сайте произошла непредвиденная ошибка. Пожалуйста, попробуйте позже.»
Эта ошибка исходит от _drupal_log_error().
В качестве быстрого исправления для разработки вы можете обновить эту функцию, чтобы предоставить более подробные сообщения об ошибках, но обязательно убедитесь, что вы изменили ее, прежде чем сайт заработает 🙂
Проверьте дблог. Это лучшее место для поиска ошибок на веб-сайте Drupal. Также проверьте консоль JS, чтобы выбрать дополнительные ошибки в вашем браузере.
Проверьте в watchdogтаблице в MySQL. Вы можете скачать Blob ( variablesстолбец) и открыть его с помощью Блокнота. Он покажет вам сериализованный объект с вашей ошибкой.
Попробуй это:
уровень ошибки
admin menu equivalent: admin/config/development/logging
drush command: drush vset -y error_level <value>
values:
0: none
1: errors and warnings
2: all
Чтобы сделать ошибки видимыми на вашем сайте Drupal, найдите файл index.php в главном каталоге вашего сайта. Откройте index.php и добавьте этот код непосредственно перед самой первой строкой файла:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Вы также можете попытаться решить Drupal проблемы с журналами ошибок, как описано здесь ..
Это старая тема, но, поскольку я недавно столкнулся с этой же проблемой, предоставил свои материалы. Я не смог получить доступ ни к одному из путей Drupal, так как всегда получал эту ошибку, несмотря ни на что. Это начало происходить после того, как я обновил представление, поэтому я знал, что нужно сделать, но не смог открыть представление. Таким образом я просмотрел логи сервера Apache. Помимо приведенного выше решения, такого как просмотр drush и dblogs, вместо этого может быть полезно просмотреть журналы сервера Apache, особенно когда вы не можете получить доступ ни к одному из путей приложения. Они обычно присутствуют в файле logs error.log и содержат подробные данные о необработанном исключении, месте, где оно было сгенерировано и т. Д. В качестве быстрого исправления вы можете прокомментировать код, генерирующий исключение, и обновить приложение. В моем случае я прокомментировал пост кода, который я смог получить в представлении и сделать необходимые обновления. Надеюсь, что это поможет кому-то в подобных ситуациях
Это очень интересно, но если вы открываете исходный код страницы (CTRL-U), тогда все предупреждения и сообщения об ошибках присутствуют, они просто находятся в скрытом элементе. Ищите element-invisible.
Редактировать: $conf['error_level'] = 1;должен быть также помещен в settings.phpфайл.
I am a new Drupal user. I constantly get this error message and I am aware of the reason behind this. Basically this is because of the SQL state 4000 error which is also called as SQL deadlock error. While I try to fix this issue, I would like to see if there is a way to change the text of this error —
«The Website encountered an unexpected error. Please try again later» .
My question is pretty straight. I want to change this text to a meaningful one. Is it possible to do?Any guidelines on the steps to follow?
asked Apr 19, 2020 at 22:19
This error page is not something that is easy for Drupal to control. It’s usually produced by a 500 response from the server. But, I have managed to do this on one of my websites using a service worker.
- Create a custom HTML page for your new 500 error splash page.
- Create a basic service worker that caches this page and returns it in the case of a 500 error.
Example:
const filesToCache = [
'/500.html'
];
const staticCacheName = '0.0';
self.addEventListener('install', event => {
event.waitUntil(
caches.open(staticCacheName)
// Cache all of the configured files.
.then(cache => {
return cache.addAll(filesToCache);
})
// Force an update of the service worker, if need be.
.then(function() {
return self.skipWaiting();
})
);
});
// Delete outdated cache.
self.addEventListener('activate', event => {
const cacheWhitelist = [staticCacheName];
event.waitUntil(
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.map(cacheName => {
if (cacheWhitelist.indexOf(cacheName) === -1) {
return caches.delete(cacheName);
}
})
);
})
);
});
// Serve appropriate error pages from cache.
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => {
if (response) {
return response;
}
return fetch(event.request)
.then(response => {
if (response.status === 500) {
return caches.match('/500.html');
}
return caches.open(staticCacheName)
});
})
);
});
- Add your service worker to the
<body>of yourhtml.html.twigfile of your theme (or another comparable place):
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then(swReg => {
console.log('Service Worker is registered', swReg);
})
.catch(err => {
console.error('Service Worker Error', err);
});
});
}
</script>
answered Apr 20, 2020 at 16:26
I am a new Drupal user. I constantly get this error message and I am aware of the reason behind this. Basically this is because of the SQL state 4000 error which is also called as SQL deadlock error. While I try to fix this issue, I would like to see if there is a way to change the text of this error —
«The Website encountered an unexpected error. Please try again later» .
My question is pretty straight. I want to change this text to a meaningful one. Is it possible to do?Any guidelines on the steps to follow?
asked Apr 19, 2020 at 22:19
This error page is not something that is easy for Drupal to control. It’s usually produced by a 500 response from the server. But, I have managed to do this on one of my websites using a service worker.
- Create a custom HTML page for your new 500 error splash page.
- Create a basic service worker that caches this page and returns it in the case of a 500 error.
Example:
const filesToCache = [
'/500.html'
];
const staticCacheName = '0.0';
self.addEventListener('install', event => {
event.waitUntil(
caches.open(staticCacheName)
// Cache all of the configured files.
.then(cache => {
return cache.addAll(filesToCache);
})
// Force an update of the service worker, if need be.
.then(function() {
return self.skipWaiting();
})
);
});
// Delete outdated cache.
self.addEventListener('activate', event => {
const cacheWhitelist = [staticCacheName];
event.waitUntil(
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.map(cacheName => {
if (cacheWhitelist.indexOf(cacheName) === -1) {
return caches.delete(cacheName);
}
})
);
})
);
});
// Serve appropriate error pages from cache.
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(response => {
if (response) {
return response;
}
return fetch(event.request)
.then(response => {
if (response.status === 500) {
return caches.match('/500.html');
}
return caches.open(staticCacheName)
});
})
);
});
- Add your service worker to the
<body>of yourhtml.html.twigfile of your theme (or another comparable place):
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then(swReg => {
console.log('Service Worker is registered', swReg);
})
.catch(err => {
console.error('Service Worker Error', err);
});
});
}
</script>
answered Apr 20, 2020 at 16:26