Vsechny chyby jsou smerovany na error 500
- Jirda
- Člen | 103
Zdravim,
rad bych se zeptal, co je treba jeste nastavit, aby fungovalo korektne zobrazovani prislusne chybove stranky u error presenteru?
V neonu mam nastavene:
<?php
nette:
application:
errorPresenter: Error
?>
A v bootstrapu klasicky:
<?php
...
// Configure application
$configurator = new Configurator;
$configurator->enableDebugger(__DIR__ . '/../log');
...
?>
A jedu na produkcnim serveru, ale i presto pri zadani jakehokoliv nesmyslu do adresy nebo volani metody error() v presenteru dojde k zobrazeni chybove stranky se server error 500.
Pricemz podle logu je vyvolana chyba pouhym vyhozenim Nette\Application\BadRequestException # 404, coz by logicky melo zobrazit page not found a ne tohle.
Jeste dodam, ze jsem zkousel pridat i catchExceptions = TRUE do configu, ale zadna zmena.
Pouzivam Nette 2.0.7.
DIky za komentare.
Editoval Jirda (29. 4. 2013 23:43)
- Jirda
- Člen | 103
Šaman napsal(a):
Která chyba se vypíše si řídí ErrorPresenter. Pokud máš klasický ze Sandboxu, tak je někde chyba.
Pro začátek zjisti, jestli ta 500 je Netťácká, nebo z Apache. (Nette chyba je formátovaná, myslím, že má modrý nadpis.)
Diky za reakci.
Zacal jsem vice zkoumat ErrorPresenter a problem jsem nasel. Problem jsem si
zapricinil sam, ale i presto by se mozna mohlo premyslet o drobne zmene
obecne. O co slo.
ErrorPresenter jsem si zaclenil do namespace sve aplikace. Proto doslo k tomu, ze podminka $exception instanceof Nette\Application\BadRequestException byla vyhodnocena jako false.
Takze ja jsem si podminku jen kosmeticky upravil na $exception instanceof \Nette\Application\BadRequestException. Pak uz se vyhodnocuje spravne.
Mimochodem, kdyz se divam do soucasneho sandboxu a jeho error presenteru, myslim si, ze tam muze dochazet k tomu stejnemu → https://github.com/…resenter.php
Editoval Jirda (30. 4. 2013 0:11)
- Jirda
- Člen | 103
Šaman napsal(a):
To lomítko tam není nutné, protože v sekci USE je i Nette. Ledaže bys to při úpravách vymazal. Namepsape
App
si tedy můžeš změnit bez nebezpečí.
Pokud jsi vytvořil NS ve starém ErrorPresenteru, který v namespace nebyl, tak je potřeba to Use doplnit.
JJ, to je vlastne pravda. Nevsiml jsem si. Diky.