Vsechny chyby jsou smerovany na error 500

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jirda
Člen | 103
+
0
-

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)

Šaman
Člen | 2640
+
0
-

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.)

Jirda
Člen | 103
+
0
-

Š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)

Šaman
Člen | 2640
+
0
-

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.

Jirda
Člen | 103
+
0
-

Š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.