Řešení častých dotazů
Nejde mi Nette, zobrazuje se bílá stránka
- Spusťte si Requirements Checker a ověřte, zda webhosting podporuje Nette Framework.
- Zkontrolujte, zda lze do adresářů
temp
alog
zapisovat. Pokud provozujete váš webový server na systémech využívající SELinux, je důležité změnit kontextový typ obou složektemp
ilog
zhttpd_sys_content_t
nahttpd_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í
- 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>).
- Zkontrolujte malá/velká písmenka (
'Module' => 'Front'
fungovat nebude,'module' => 'Front'
ano). - 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.