Stránka neustále zobrazuje error 500 – tracy
- sniper1101
- Člen | 21
Dobrý deň. Prešiel som všetky témy týkajúce sa zobrazovania error500 ale neúspešne. Problém je, že pokiaľ chcem mať web plne nahratý a sprístupnený všetkým užívateľom je môj bootstrap nasledovný:
$configurator = new Nette\Configurator;
//$configurator->setDebugMode('78.98.217.26'); // enable for your remote IP
$configurator->setDebugMode(FALSE);
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->register();
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$container = $configurator->createContainer();`
Avšak keď si dám napríklad neexistujúcu stránku nieco.sk/neexistujucapage tak mi Server Error 500 - ale nie je to ten error template ktorý je v zložke frontendModule/templates/Error/500.latte ale zrejme nejaký od tracy - obsahuje `<div id="tracy-error">Server Error
We're sorry! The server encountered an internal error and was unable to complete your request. Please try again later.
error 500</div>
Viete mi prosím niekto poradiť, prečo nefunguje zobrazovanie errorov zo
zložky error?
Môj errorpresenter pre frontend module:
<?php
namespace App\FrontendModule\Presenters;
use Nette;
use App\Model;
use Tracy\ILogger;
class ErrorPresenter extends Nette\Application\UI\Presenter
{
/** @var ILogger */
private $logger;
public function __construct(ILogger $logger)
{
$this->logger = $logger;
}
/**
* @param \Exception
* @return void
*/
public function renderDefault($exception)
{
if ($exception instanceof Nette\Application\BadRequestException) {
$code = $exception->getCode();
$this->setView(in_array($code, [403, 404, 405, 410, 500]) ? $code : '4xx');
} else {
$this->setView('500');
$this->logger->log($exception, ILogger::EXCEPTION);
}
if ($this->isAjax()) {
$this->payload->error = TRUE;
$this->terminate();
}
}
}
Ďakujem za každú rádu.
- sniper1101
- Člen | 21
Pozrel som, tam hlási:
Nette\Application\InvalidPresenterException
Cannot load presenter 'Error', class 'ErrorPresenter' was not found.
posielam môj errorPresenter v zložke FrontendModule/presenters/
<?php
namespace App\FrontendModule\Presenters;
use Nette;
use Tracy\ILogger;
class ErrorPresenter extends BasePresenter
{
/** @var ILogger */
private $logger;
public function __construct(ILogger $logger)
{
$this->logger = $logger;
}
/**
* @param \Exception
* @return void
*/
public function renderDefault($exception)
{
if ($exception instanceof Nette\Application\BadRequestException) {
$code = $exception->getCode();
$this->setView(in_array($code, [403, 404, 405, 410, 500]) ? $code : '4xx');
} else {
$this->setView('500');
$this->logger->log($exception, ILogger::EXCEPTION);
}
if ($this->isAjax()) {
$this->payload->error = TRUE;
$this->terminate();
}
}
}
- sniper1101
- Člen | 21
Skúsil som, ale neúspešne. Nič sa nestalo.
//vyriešené, stačilo doplniť frontend do sekciie application.
Editoval sniper1101 (14. 11. 2015 13:14)
- sniper1101
- Člen | 21
Dávid: áno mal si pravdu, bol to cache. Ešte prosím ťa otázka, pokiaľ by si chcel mať pre backendModule iné errory a teda v zložke backendmodule/templates/error ako by sa nato išlo? teraz je to predpokladám pre oba nastavené na front…