Server error 500, nenačítá se ErrorPresenter
- jura2.0
- Člen | 8
Zdravím,
všiml jsem si, že pokud nejsem v debug modu, tak mi web vyhazuje Server error
500, ale po několika dnech se mi to stále nepodařilo vyřešit.
V logu se mi objevuje toto:
Nette\Application\InvalidPresenterException: Presenter name must be alphanumeric string, ‚\FrontModule\Error‘ is invalid. in …/www/vendor/nette/application/src/Application/PresenterFactory.php:66
Vůbec nechápu proč hledá ‚\FrontModule\Error‘, když ani Front ani FrontModule nikde nemám.
V logu se mi tohle začlo objevovat asi v době, kdy jsem rozdělil
Frontend a Backend, takže je možné, že jsem udělal někde chybu, ale
zkoušel jsem postupovat podle více návodu, pokaždé se stejným
výsledkem.
Zkoušel jsem postupy z tohoto fóra k chybě 500 na hostingu Wedos, ale nic
nepomohlo. Většina je teda pár let stará a aktuální řešení může být
jiné, ale řekl bych, že chyba souvisí spíše s těmi Errory.
Takto vypadají části souborů podle mě relevantních k problému.
config.neon:
application:
errorPresenter: FrontendModule:Error
mapping:
*: App*Module\Presenters*Presenter
RouterFactory.php:
$router = new RouteList();
$router[] = new Route(‚admin/<presenter>/<action>[/<id>]‘, array(
‚module‘ ⇒ ‚Backend‘,
‚presenter‘ ⇒ ‚Homepage‘,
‚action‘ ⇒ ‚default‘,
));$router[] = new Route(‚<presenter>/<action>‘, array(
‚module‘ ⇒ ‚Frontend‘,
‚presenter‘ ⇒ ‚Homepage‘,
‚action‘ ⇒ ‚default‘,
));
ErrorPresenter.php
namespace App\FrontendModule\Presenters;
…
- David Matějka
- Moderator | 6445
melo by tam byt v configu jen `
Frontend:Error, ale to nevysvetluje tu chybu. zkus textove hledat v projektu, jestli tam nekde nemas retezce jako `FrontModule:Error
Front:Error
nebo treba FrontModule\Error
- iguana007
- Člen | 970
Ja mam config takto a funguje mi to spravne:
application:
errorPresenter: Error
mapping:
*: App\*Module\Presenters\*Presenter
Front: FrontModule\*Module\*Presenter
Admin: AdminModule\*Module\*Presenter
Error presenter mam uz v podstate stejne jako v sandboxu:
<?php
namespace App\Presenters;
use Nette;
use Nette\Application\Responses;
use Tracy\ILogger;
class ErrorPresenter implements Nette\Application\IPresenter
{...}
- jura2.0
- Člen | 8
Tak jsem to všechno vyzkoušel, se stejným výsledkem, v debugger modu to
fungovalo a v logu byly stejné chyby.
Problém zmizel ve chvíli, kdy jsem vytáhl všechny své soubory a hodil je do
nového projektu. Fungovala pak i má původní konfigurace. Asi se mi nějaký
soubor ztratil nebo poškodil při přesouvání…
Takže díky všem za odpovědi a zároveň se omlouvám za čas, který jste
tím ztratili, mohlo mě to napadnout dříve…