Problém s víceslovnými názvy view

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mk
Člen | 4
+
0
-

Zdravím,

Nette framework u víceslovných view (např. renderEditFile) používá ve výchozím nastavení při generování URL spojovník („edit-file“). To je všechno v pořádku. Avšak ve chvíli, kdy jsem provedl deployment na server nastal problém. Odkazy na presentery/views se generovali stejně (tedy se spojovníkem), ale místo správného namapování na presenter/view se objevila akorát chyba 404 stránka nenalezena. Tzn. odkazy, které se vygenerovali, nebyly funkční. Stejné adresy bez spojovníku (editfile) fungovaly.

Takže mě zajímá: buď jak změnit generování odkazů na variantu bez spojovníku nebo jak opět zprovoznit view s původními URL – tedy se spojovníkem.

Děkuji za každou radu.

Ondřej Mirtes
Člen | 1536
+
0
-

Spusť na provozním serveru Laděnku (Debug::enable(Debug::DEVELOPMENT)), ať vidíš, co přesně to nenašlo.

mk
Člen | 4
+
0
-

Laděnka nic neukazuje. Nejde o chybu v PHP. Prostě se zobrazí 404ka, takže problém bude někde v tom, že routing systém tu adresu nezachytí.

jakubkulhan
Člen | 55
+
0
-

Je správně nastavené přesměrování všeho na index.php v .htaccess?

Editoval jakubkulhan (21. 7. 2009 1:05)

Jan Tvrdík
Nette guru | 2595
+
0
-

Ta 404 je od Apache nebo od Nette? Zkus vypnou Error Presenter a nechat tu vyjímku zpracovat laděnkou. Zkus si zapnout RoutingDebugger.

mk
Člen | 4
+
0
-

Ano, .htaccess je původní, beze změn.

RoutingDebugger ukazuje, že se routa vybere dobře a parametry se také předají správně.

Jak vypnu Error presenter? Stačí zakomentovat:

//$application->errorPresenter = 'Error';

?

Editoval mk (21. 7. 2009 1:54)

Jan Tvrdík
Nette guru | 2595
+
0
-

mk napsal(a):

Jak vypnu Error presenter? Stačí zakomentovat:

//$application->errorPresenter = 'Error';

?

Radši ještě nastav $application->catchException = FALSE.

kravčo
Člen | 721
+
0
-

Jan Tvrdík napsal(a):

mk napsal(a):

Jak vypnu Error presenter? Stačí zakomentovat:

//$application->errorPresenter = 'Error';

?

Radši ještě nastav $application->catchException = FALSE.

Radšej nastav rovno $application->catchExceptions = FALSE, čo ak ich bude viac ;) viď API

mk
Člen | 4
+
0
-

Tak jsem se konečně propracoval k výstupu s laděnky. Ta mi řekla, že mi chybí template. To mi bylo divné, páč tam template mám. Asi po minutě mi došlo, že Nette framework po mě chce editFile.phtml a ne editfile.phtml. No prostě zase Windows-Linux problém. Každopádně bych na to někde v quickstartu raději upozornil, protože většina lidí pravděpodobně vyvíjí pod Windows a nemusí si tohle striktní pojmenování uvědomit.

Každopádně děkuju všem, co se tady ozvali. Moc mě potěšilo, že se mi to s vaší pomocí podařilo opravit takhle rychle. Díky.

Vyřešeno.