HTTP odkazy na metodu – metoda/stránka nenalezena

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

Přeji dobrý den,

v prezenteru (Nette 2.0.10) mám několik metod :

public function actionEditItem($idOp,$id,$nItem)
...
public function actionEditItemDetail($idOp,$id,$nItem)

V šabloně se na tyto metody odkazuji :

<a n:href="edititem,edit,$row['id'],$iterator->counter">.. ..</a>
...
<a n:href="edititemdetail,edit,$row['id'],$iterator->counter">.. ..</a>

Na „mém“ PC (WindowsXP + WampServer – Apache 2.2.21 + PHP 5.3.10) vše OK.
Na „ostrém“ serveru (Linux + Apache) je řízení správně předáno pouze ve 2. případě (" … n:href=„edititemdetail …“). V 1. případě (" … n:href=„edititem …“) je zobrazena chyba „stránka nenalezena“.

Pokud použiju odkazy ve tvaru :

... n:href="editItem ..."
...
... n:href="editItemDetail ..."

je odkaz převeden do tvaru „…/edit-item/…“ resp. „…/edit-item-detail/…“ a pak se chování změní (chyba se projevuje „opačně“):
Na mém PC opět vše OK.
Na serveru se tentokrát dobře zpracuje 1. odkaz (n:href="editItem ⇒ …/edit-item/…), ve 2. případě (n:href="editItemDetail ⇒ …/edit-item-detail/…) je opět zobrazena chyba o nenalezení stránky.

Pokud opravím odkaz v adresářové řádce prohlížeče – tj. odstraním nebo doplním znaky „-“, je vše OK – metoda se spávně zavolá.

S pozdravem kbtm

Tomas Jancik
Člen | 103
+
0
-

tak me napada… promazal jsi cache na serveru?

kbtm
Člen | 22
+
0
-

… několikrát …

Cache za to zřejmě (?) nemůže. Na „ostrý“ server se nedostanu každý den (jedná se o firemní server pro zpracování intranetových aplikací – cache Apache je – dle slov admina – odstraňována pravidelně), takto se chová i po kompletním odstranění aplikace a jejím opakovaném uploadu.
Stejně se chovají obě metody ve 3 různých prezenterech (prezenter pro zpracování kusovníku, operací a kontrol) – metody se stejně jmenují (actionEditItem/actionEditItemDetail).

kbtm

kbtm
Člen | 22
+
0
-

Vyřešeno …

Volané metody :

public function actionEditItem($idOp,$id,$nItem)
...
public function actionEditItemDetail($idOp,$id,$nItem)

stačí přejmenovat na :

public function actionItemEdit($idOp,$id,$nItem)
...
public function actionItemDetailEdit($idOp,$id,$nItem)

a změnit příslušné odkazy na :

... n:href="itemedit ..."
...
... n:href="itemdetailedit ..."

a vše je už OK – bez problémů pracuje na lokální PC i na externím serveru.

Jestli je to bug v Nette nebo standardní/očekávané/správné chování se neodvažuji posoudit …

S pozdravem kbtm