js wyiswyg a 404 error handling
- Tomik
- Nette Evangelist | 485
Chtěl bych se zeptat diskutujících jak řeší js wysiwyg, např.
TinyMCE. Všechny tyto knihovny potřebují kromě js a
obrázků (které jsou v .htaccess povoleny – nebyl by
problém je tedy prostě nahrát do document_rootu a v html
pouze odkázat na .js soubor) i php soubory, jenže ty výchozí
.htaccess nepovolí. Nabízí se řešení do toho
.htaccessu v document_rootu přidat
příponu .php, ale to se potom může stát, že pokud člověk zadá do adresy
např. → Vyřešeno.http://www.web.cz/neexistujici.php
, tak se zobrazí
klasická 404 chyba Apache, nikoli Nette Error
handler, což je škoda. Jak tedy řešit vkládání takovýchto
částí do projektu?
A tak mě tak napadá, pokud se normálně u projektu psaném v Nette
uživatel pokusí otevřít neexistující obrázek – např.
http://www.web.cz/neexistujici.jpg
, pak se mu zobrazí výchozí
404 chyba Apache, nikoli Error handler
Nette – je to žádoucí? Myslím, že ne. Dá se to nějak
jednoduše obejít?
Napadá mě řešení, kdy vezmu nějakou fiktivní adresu, která bude
normálně parsovaná přes Nette, ale nebude k ní existovat Presenter,
vyhodí se tedy 404 chyba – ale ta Nettí, a tuto fiktivní adresu bych
uvedl do .htaccess osuboru v definici 404 chyby
(ErrorDocument 404 /neexistujiciPresenter
toto by bylo uvedeno
v souboru .htaccess). Tudíž by se přestala zobrazovat
výchozí Apache 404 chyba, a byla nahrazena tou Nettí.
Řeší to někdo jinak? Řeší to někdo? :)
Editoval Tomik (15. 4. 2009 0:00)
- Tomik
- Nette Evangelist | 485
Ještě abych uvedl příklad toho problému s Error handlingem, porovnejte:
a
- Honza Marek
- Člen | 1664
Vždyť snad obyčejné php soubory normálně fungujou, ne? Ona je v tom běžném htaccessu nějaká podmínka na to, jestli ten soubor existuje přece.
- Tomik
- Nette Evangelist | 485
Honza M. napsal(a):
Vždyť snad obyčejné php soubory normálně fungujou, ne? Ona je v tom běžném htaccessu nějaká podmínka na to, jestli ten soubor existuje přece.
Aha, máš pravdu, co se týče .htaccessu, nikdy jsem s ním nebyl velký kamarád, i před Nette jsem vše radějí řešil redirectem na index.php a rozparsováním URI ručně.. :)
Díky, první problém s tím WYSIWYGem je vyřešen, zbyvá tedy jen problém s Apache error zprávou, pokud se pokusím otevřít neexistující obrázek, ale to se dá poměrně jednoduše vyřešit pomocí toho mého řešení, co jsem popsal výše… Jen mě zajímalo jestli není nějaký lepší, reps. čistčí řešení.
Editoval Tomik (15. 4. 2009 0:00)
- nAS
- Člen | 277
A tak mě tak napadá, pokud se normálně u projektu psaném v Nette uživatel pokusí otevřít neexistující obrázek – např.
http://www.web.cz/neexistujici.jpg
, pak se mu zobrazí výchozí 404 chyba Apache, nikoli Error handler Nette – je to žádoucí? Myslím, že ne. Dá se to nějak jednoduše obejít?
Já myslím, že to žádoucí je. Požadavek na obrázek je obvykle v tagu
<img />, takže uživatel stejně nic neuvidí a alespoň se nebude
přenášet zbytečně moc dat a ušetří se procesorový čas.
Pokud by ti to výchozí chování nevyhovovalo, tak stačí z .htaccess souboru
upravit pravidlo, které to zařizuje, takže:
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
změnit na:
RewriteRule .* index.php [L]
Napadá mě řešení, kdy vezmu nějakou fiktivní adresu, která bude normálně parsovaná přes Nette, ale nebude k ní existovat Presenter, vyhodí se tedy 404 chyba – ale ta Nettí, a tuto fiktivní adresu bych uvedl do .htaccess osuboru v definici 404 chyby (
ErrorDocument 404 /neexistujiciPresenter
toto by bylo uvedeno v souboru .htaccess). Tudíž by se přestala zobrazovat výchozí Apache 404 chyba, a byla nahrazena tou Nettí.
Hehe :) To je dobře překombinovaný.
Editoval nAS (15. 4. 2009 2:47)
- _Martin_
- Generous Backer | 679
nAS napsal(a):
Já myslím, že to žádoucí je. Požadavek na obrázek je obvykle v tagu <img />, takže uživatel stejně nic neuvidí a alespoň se nebude přenášet zbytečně moc dat a ušetří se procesorový čas.
Přesně. Jak říkal Davida na školení, kvůli chybějícím (či špatně
odkázaným) obrázkům (stylům,…) nemá cenu načítat celý framework –
Apachí hláška má menší režii. Samozřejmě, úprava
.htaccessu
je možná, nejde o žádné „vynucované
chování“.
- Tomik
- Nette Evangelist | 485
Heh, mate samozrejme pravdu, to tema jsem psal vcera docel pozde, tak me prosim omluvte. :)
Je pravda, ze to moje reseni je naprosto prekombinovane, to souvisi s tim, ze se moc nekamaradim s .htaccess. Samozrejme odstraneni toho pravidla je spravny a vyrazne lepsi zpusob reseni. :)
Jinak u obrazku to asi opravdu zadouci je. Ale napr. takovy pdf dokument by si uz mozna zaslouzil nejakou hezkou a vysvetlujici 404 stranku, coz se da ale vyresit odstranenim pripony pdf z toho pravidla.
Tak dekuji, vse je jiz vyreseno. Vlastne oba problem byly jen „pseudoproblemy“ zpusobene moji neznalosti problematiky .htaccess, tak se omlouvam, ze jsem otravoval. :)
Jinak pekny den!