error hláška se nezmění po uložení
- David Matějka
- Moderator | 6445
A vola se vubec ten error presenter? (dej si tam treba exit a uvidis)
co se tedy zobrazuje za error hlasku?
- David Matějka
- Moderator | 6445
a 404 od nette nebo od apache?
v pripade, ze je od nette, nejedna se nahodou o ten defaultni error, ktery se zobrazuje, pokud neni nastaveny error presenter?
takze znovu prvni otazka: vola se vubec tvuj error presenter?
- docky
- Člen | 59
Ano, když dám exit(); ve FrontModulu/Presenters/ErrorPresenter tak se mi
ukaže chyba.
404 je od nette
https://ctrlv.cz/…/19/GnvU.png
- Šaman
- Člen | 2666
Univerzální recept se skoro padesátiprocentní úspěšností na podobé
problémy: promaž cache.
Pokud to nepomůže, tak nám ideálně nasdílej projekt, pokud to nejde tak
postni aspoň jak nastavuješ ErrorPresenter a jakou chybu ti to píše pokud
máš zapnuté ladění. Pokud jsi vycházel ze sandboxu/web-projectu, tak by to
mělo fungovat. A pokud jsi v produkčním režimu, pomůže ta cache.
Edit: Aha, to už jsi zkoušel. Tak pak by bylo ideální, abyhom viděli zdrojáky, protože jsi nejspíš někde něco upravil jinak, než jak je to nastavené v sandbox/web-project.
Editoval Šaman (19. 1. 2016 19:39)
- docky
- Člen | 59
Error presentery jsem vubec nemenil, jediné co jsem udělal že jsem upravil
namespace kvuli modulum.
Když dám : něco.cz/blablabl (neexistujici stranku) tak se normálně ukáže
nette hláška 404 (anglicky), ja jsem to přepisoval
v FrontModule/Templates/Error/404.latte , a stránka na to vůbec
nereaguje .
<?php
namespace App\FrontModule\Presenters;
use Nette;
class Error4xxPresenter extends BasePresenter
{
public function renderDefault(\Exception $exception)
{
// load template 403.latte or 404.latte or ... 4xx.latte
$file = __DIR__ . "/templates/Error/{$exception->getCode()}.latte";
$this->template->setFile(is_file($file) ? $file : __DIR__ . '/templates/Error/4xx.latte');
}
}
<?php
namespace App\FrontModule\Presenters;
use Nette;
use Tracy\ILogger;
class ErrorPresenter extends Nette\Object implements Nette\Application\IPresenter
{
/** @var ILogger */
private $logger;
public function __construct(ILogger $logger)
{
$this->logger = $logger;
}
/**
* @return Nette\Application\IResponse
*/
public function run(Nette\Application\Request $request)
{
$e = $request->getParameter('exception');
if ($e instanceof Nette\Application\BadRequestException) {
// $this->logger->log("HTTP code {$e->getCode()}: {$e->getMessage()} in {$e->getFile()}:{$e->getLine()}", 'access');
return new Nette\Application\Responses\ForwardResponse($request->setPresenterName('Error4xx'));
}
$this->logger->log($e, ILogger::EXCEPTION);
return new Nette\Application\Responses\CallbackResponse(function () {
require __DIR__ . '/templates/Error/500.phtml';
});
}
}
\--