Puncte:0

Crearea unui modul personalizat a cauzat „Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu”.

drapel mu

Drupal 9.2.7 pe XAMPP 7.3.29, 7.4.21 pe Windows 10 Home.

Am încercat să creez un modul personalizat care permite JavaScript și CSS globale (eficient în toate paginile web de pe site-ul meu), prin crearea directorului root/module/globalrs cu urmatoarele fisiere:

globalrs.info.yml

nume: globalri
tip: modul
cerinta_versiune_core: ^8 || ^9
descriere: „globalrs”
biblioteci:
  - globalrs/globalrs

globalrs.modul

funcția globalrs_preprocess_page(&$variabile) {
  $variables['#attached']['library'][] = 'globalrs/globalrs';
}

globalrs.libraries.yml

globalisti:
  js:
    behavior.js: {}
  css:
    temă:
      style.css: {}

stil.css

* {
    fundal: roșu;
}

Problema mea

Problema mea este că site-ul web nu se încarcă, în schimb apare următoarea eroare:

Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu.

Chiar dacă șterg directorul modulelor și șterg toate cache-urile (șterg toate cache_ mesele precum și cele cachetag-uri tabelul și ștergerea memoriei cache a browserului, site-ul web are încă acea eroare;
Deoarece eroarea este generică, nu știu cum să încep să rezolv problema.

Un bug ca posibil motiv

Este posibil ca problema să fi început după ce am adăugat $settings['rebuild_access'] = TRUE; până la sfârșitul /sites/default/settings.php, am salvat fișierul și apoi am navigat în browserul meu web la localhost/example.com/core/rebuild.php, unde am primit următoarea eroare:

Eroare fatală: PDOException neprinsă: SQLSTATE[HY000] [1044] Acces refuzat pentru utilizatorul „example.com”@“localhost” la baza de date „example.com” în

Editare (eliminarea celorlalte mesaje de eroare, deoarece aceasta este cauzată de o eroare fără legătură în timpul restaurării unei copii de rezervă):

Cred că problema s-a întâmplat cândva când am încercat să restabilesc un copie de rezervă a site-ului web într-o nouă bază de date goală cu același nume care a fost înregistrat ca asociat cu utilizatorul bazei de date (sau părea a fi așa), dar de fapt nu a fost

Actualizare - soluție

Am lipit asta aici după ce Clive mi-a șters răspunsul:

Am revocat toate privilegiile specifice bazei de date pe care utilizator al bazei de date avut pe baza de date cu acelasi nume și apoi re-acordat aceste privilegii specifice bazei de date1 utilizatorului respectiv; Apoi am putut accesa site-ul.

drapel mu
Jur că nu pot înțelege niciun vot negativ la această postare; un om are necazuri și caută ajutor urgent în umilire; sentimentul este deja nasol, nu găsesc de ce să-l fac mai nasol. Drupal **este** creat și pentru constructorii de site-uri web, nu numai pentru programatorii Drupal; aceasta este poziția comunității! Deschideți drupal.org și îl puteți citi.
berliner avatar
drapel bd
Dacă aveți acces la jurnalul de erori al serverului, acolo ar trebui să căutați pentru a găsi mesajul de eroare real. Sau chiar mai bine dacă vă uitați la acel site pe mașina dvs. locală, configurați PHP pentru a afișa erori.
Kevin avatar
drapel in
Un lucru pe care nu îl puteți face este să activați un modul și apoi să-l ștergeți din sistemul de fișiere fără a-l dezactiva mai întâi. Acest lucru va agrava problemele. Eroarea reală ar fi în jurnalele php sau apache. De asemenea, nu trebuie să goliți memoria cache cu un client SQL - puteți face asta de la administrator. Altceva nu este în regulă aici, motiv pentru care aveți nevoie de jurnalele XAMPP pentru php și apache.
No Sssweat avatar
drapel ua
`Accesul refuzat pentru utilizatorul 'example.com'@'localhost' la baza de date 'example.com'` Se pare că modificarea pe care aţi făcut-o la settings.php a încurcat conexiunea db. Puteți șterge fișierul settings.php și lăsați Drupal să-l recreeze atunci când încercați să vizualizați site-ul. Veți primi asistentul de instalare ca și cum ați face o instalare nouă, cu excepția faptului că DB-ul nu este gol, nu va fi suprascris.
drapel mu
@Kevin mulțumesc, nu am activat modulul (din fila „extindere”), dar poate pentru modulele personalizate nici nu este nevoie?
drapel mu
@NoSssweat Tocmai am încercat asta și am primit, în vrăjitorul de instalare: `Nu s-a putut conecta la serverul tău de baze de date. Serverul raportează următorul mesaj: SQLSTATE[HY000] [1044] Acces refuzat utilizatorului „example.com”@“localhost” la baza de date „example.com”.`
drapel mu
Bine problema rezolvata; Pot accesa site-ul web; Am scris intr-un raspuns ce am facut.
drapel mu
Poate cineva să explice de ce Clive mi-a șters răspunsul?...
Puncte:2
drapel cn

Inainte de creați un set de module personalizat

  • Toate mesajele, cu informații backtrace

în admin/config/development/logging. Această opțiune este disponibilă în nucleul Drupal fără niciun instrument de dezvoltare instalat.

Apoi veți primi un mesaj de eroare mai util dacă ceva nu merge bine.

Cu implicit

  • Nici unul

mesajul de eroare este înlocuit de „Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu.”. Singurul scop al acestui mesaj este de a ascunde eroarea reală în mediile de producție.

Dacă este prea târziu și nu mai puteți deschide interfața de administrare, puteți activa în continuare toate mesajele de eroare din settings.php:

$config['system.logging']['error_level'] = 'verbos';

Nu eliminați codul modulului, acest lucru înrăutățește lucrurile. Dacă nu puteți merge înainte sau înapoi, nu puteți remedia eroarea cu mesajul de eroare mai util și nu puteți dezinstala modulul deoarece este stricat, apoi derulați întregul site dintr-un backup sau un instantaneu pe care l-ați făcut înainte de a crea modulul.

drapel mu
La naiba, nu am creat niciun instantaneu înainte de a crea modulul, mai degrabă, doar înainte de a șterge toate cache-urile după ce am terminat de creat... Nu credeam că simple fișiere ar afecta ceva.
drapel cn
@Alkalix Dacă nu ați făcut nimic care să afecteze baza de date din modul, atunci puteți re-crea un modul cu același **nume de mașină** și Drupal nu se va plânge.
drapel mu
@PatrickKenny da, am încercat asta...Din anumite motive, site-ul este încă oprit, voi încerca ceea ce a fost sugerat în comentariile întrebărilor.
drapel mu
Clive mi-a șters răspunsul pe care am vrut să-l marchez ca fiind cel mai util, deoarece cred cu tărie că ar fi cel mai util (din răspunsurile disponibile aici) să rezolv problema descrisă; ce se petrece aici?...
4uk4 avatar
drapel cn
Întrebarea este *Crearea unui modul personalizat a cauzat „Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu.”*. Sunt sigur că ați fi putut rezolva acest lucru afișând un mesaj de eroare complet, probabil doar o eroare de sintaxă. Eroarea pe care ați întâlnit-o mai târziu după restaurarea copiei de rezervă nu are legătură. Restaurarea ar putea fi necesară pentru o mare parte a întrebărilor adresate aici dacă nu sunt rezolvate.În schimbul de stive nu puteți avea două probleme fără legătură într-o singură întrebare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.