Edit
Lang

Řešení častých dotazů

Nejde mi Nette, zobrazuje se bílá stránka

  1. Spusťte si Requirements Checker a ověřte, zda webhosting podporuje Nette Framework.
  2. Zkontrolujte, zda lze do adresářů temp a log zapisovat. Pokud provozujete váš webový server na systémech využívající SELinux, je důležité změnit kontextový typ obou složek temp i log z httpd_sys_content_t na httpd_sys_content_rw_t.
# chcon -R -t httpd_sys_content_rw_t temp log

3. Zapněte Laděnku natvrdo do vývojového režimu.

Chyba 404 – stránka nenalezena

1. Zkontrolujte cestu a název souboru šablony – malá/velká písmena, koncovka .latte.

Použití znaků { } v JavaScriptu

Znaky { a } se používají pro zápis Latte maker. Standardně se jako makro bere cokoliv, co následuje za znakem s výjimkou mezery a uvozovky. Pokud tedy potřebujete vypsat přímo znak { (často například v JavaScriptu), můžete za znakem { dát mezeru (nebo jiný prázdný znak). Tím se vyhnete překladu jakožto makra.

Pokud je nutné vypsat tyto znaky v situaci, kdy by se text přeložil jako makro, můžete využít speciálních maker na vypsání těchto znaků – {l} pro { a {r} pro }

{je makro}
{ neni makro }

Nefunguje routování

  1. Záleží, zda je modul v definici routy u presenteru (lze jej změnit, pokud je v URL <presenter>) nebo samostatně (aby byl změněn, musí být v URL <module>).
  2. Zkontrolujte malá/velká písmenka ('Module' => 'Front' fungovat nebude, 'module' => 'Front' ano).
  3. Zkontrolujte, jestli je povolený mod_rewrite.

Některé prohlížeče si pamatují přesměrování, takže po změně routeru je třeba vymazat jejich cache.

Náhodně generovaná hláška open_basedir.

Jde o PHP bug a řeší jej aktualizace na novější verzi PHP.

Pomalá Laděnka

Nastavit Laděnce menší hloubku zanoření do polí a objektů Debugger::$maxDepth a menší délku pro výpis řetězců v Debugger::$maxLen.

Validace MIME-type souboru

Stává se, že validace podle MIME-type nefunguje, resp. vyhodí chybu u souboru, který by měl validací projít. Chyba není na straně Nette Framework. Řešením je instalace knihovny Fileinfo (v PHP 5.3 je nativně podporována a povolena).

Chybí mi knihovna pro AMF, Amazon S3, OpenID, …

Nette Framework nechce být knihovnou, tj. širokým souborem tříd poskytujícím množství služeb, ale frameworkem, tedy uceleným souborem přicházejícím s určitým stylem práce (tzv. Nette-way). Framework je proto relativně malý, ale existuje pro něj řada doplňků, jejich nejucelenější sadou je pak Zend Framework.

Šablona z řetězce

Pokud potřebujete použít šablonu (zvláště pak Latte) uloženou v podobě řetězce (vráceném například z databáze), tak jej nastavte takto.

Jak nastavit server pro hezká URL?

Rozšíření Apache nazvané mod_rewrite je potřeba povolit, aby bylo možné vytvářet tzv. cool-URL. Těmito příkazy se zapne a nastaví mod_rewrite v souboru .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

Pro ovlivňování chování Apache soubory .htaccess je třeba mít povolenou direktivu AllowOverride. Toto je v Apache výchozí chování.

Pro nginx je třeba nastavit přesměrování pomocí direktivy try_files uvnitř bloku location / v konfiguraci serveru.

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

Block location se pro každou filesystémovou cestu smí v bloku server vyskytovat jen jednou. Pokud již v konfiguraci location / máte, přidejte direktivu try_files do něj.