- Artur_PN
- Člen | 1
Ahojte,
na začátku se omlouvám za jazykové chyby. ;)
Napsal jsem malou aplikací v Nette, která fungovala perfektně. Teď jsem udělal druhou verze – změnil jsem pouze nějaké latte šablony a pár JS a CSS souborů. Veškeré presentery, configi atd. zůstaly stejné. Mám to rozdílený na FrontModule a AdminModule, ale…
… stará verze funguje se správným setDebugMode (to je: false – na serveru), ale nová – už ne. Pokud nastavím setDebugMode(true), tak jede; pokud mám setDebugMode(false), tak mi vyhodí Server Error 500 a do logu uloží:
Nette\Application\InvalidPresenterException: Cannot load presenter 'Error', class 'ErrorPresenter' was not found. in (...)/public_html/(...)/vendor/nette/application/src/Application/PresenterFactory.php:71 @ http://(...)/www/ @@ exception--2020-08-18--16-25--812bab1380.html
Ano, cache v temp/cache jsem chtěl vyčistit, ale zatím se nic v ní neuložilo – je prázdna. Chmod je v pořádku. Error Presentery vůbec jsem needitoval. Myslel jsem, že problém je s routováním, ale v té první verze fungovaly stejné routy v setDebugMode(false). Nastavení setDebugMode(false) na localhostu – funguje. Já už nemám nápad, co je špatně.
Souhrn:
- setDebugMode(false) na localhostu: stránka funguje,
- setDebugMode(false) na serveru: ukazuje Error 500,
- setDebugMode(true) na serveru: stránka funguje,
- temp/cache čisté.
Dodatečné informace:
config.neon
parameters:
application:
errorPresenter: Error
mapping:
Front: FrontModule\*Presenter
Admin: AdminModule\*Presenter
session:
expiration: 14 days
services:
router: App\Router\RouterFactory::createRouter
- App\Model\DatabaseModel
- App\Model\Authenticator
authenticator: {class: App\Model\Authenticator, autowired: false}
database:
dsn: 'mysql:host=localhost;dbname=...'
user: ...
password: ...
RouterFactory.php
Structure:
project
-app
--model
--modules
---AdminModule
---FrontModule
----templates
-----Error
-----Homepage
-----...
----HomepagePresenter.php
----ErrorPresenter.php
----...
---router
---...
Editoval Artur_PN (18. 8. 2020 18:47)