Изменить 'На сайте произошла непредвиденная ошибка. Пожалуйста, попробуйте позже.' сообщение - PullRequest
1 голос
/ 20 апреля 2020

Я новый пользователь Drupal. Я постоянно получаю это сообщение об ошибке, и я знаю причину этого. В основном это связано с ошибкой состояния SQL 4000, которая также называется ошибкой взаимоблокировки SQL. Пока я пытаюсь исправить эту проблему, я хотел бы узнать, есть ли способ изменить текст этой ошибки -

«На веб-сайте обнаружена непредвиденная ошибка. Пожалуйста, повторите попытку позже».

Мой вопрос довольно прямой. Я хочу изменить этот текст на значимый. Можно ли это сделать? Есть ли какие-то рекомендации по дальнейшим действиям?

1 Ответ

0 голосов
/ 20 апреля 2020

Эта страница ошибок не так проста для управления Drupal. Обычно он создается 500 ответами от сервера. Но мне удалось сделать это на одном из моих сайтов с помощью работника службы .

  1. Создать пользовательскую страницу HTML для вашей новой страницы 500 error spla sh .
  2. Создание базового c работника службы, который кэширует эту страницу и возвращает ее в случае ошибки 500.

Пример:

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)
      });
    })
  );
});

Добавьте работника службы в <body> вашего html.html.twig файла вашей темы (или другого сопоставимого места):
<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...