špatné odkazy v nette 2.2.3
- mpis
- Člen | 65
Zkouším nejnovější verzi nette a narazil jsem na problém, se kterým si
nevím rady.
V základním layoutu mám odkazy typu:
<a n:href="TestDsb:hand">Test Dsb hand</a>
A místo toho, aby se vygenerovalo něco jako:
<a href="/testnette223/www/?presenter=TestDsb">Test Dsb hand</a>
tak se vygeneruje
<a href="/testnette223/www/test-dsb/hand">Test Dsb - hand</a>
a pak mi to vypíše chybu
The requested URL /testnette223/www/test-dsb/hand was not found on this
server.
Asi je v nové verzi něco nového, co nemůžu v dokumentaci najít.
Vůbec nechápu, proč se vygeneruje to /test-dsb/.
- David Matějka
- Moderator | 6445
Odkazy se generujou tak, jak mas nastaveny routovani
v novem nette k zasadnim zmenam v routovani nedoslo. Ten odkaz, co se ti
vygeneroval, je v poradku dle routeru
ze sandboxu
a to, proc ti to hlasi chybu, je asi spatne nastavenym apachem/htaccess. Zkus odkomentovat a nastavit rewrite base
- mpis
- Člen | 65
Routování mám stejné, jako ve verzi 2.0.13, kde tento problém
nemám.
Jestliže mám presenter nazvaný TestDsbPresenter tak proč mi to
vygeneruje
<a href="/testnette223/www/test-dsb/hand">Test Dsb - hand</a>
Já nemám adresář /test-dsb/ pro latte soubory k tomuto presenteru, ale /TestDsb/.
- David Matějka
- Moderator | 6445
Precti si, jak funguje routovani. Prepisovat ti sem celou dokumentaci nebudu.
- mpis
- Člen | 65
Díky za reakci, ale rada typu „přečti si dokumentaci“ je mi v tomto
konkrétním případu houby platná.
Jestliže píšu, že routování mám stejné jako ve verzi 2.0.13, kde tento
problém NEMÁM, tak asi příčina problému nebude v routování. A tu
příčinu bych chtěl vypátrat.
Kde a proč se generuje to „test-dsb“, když nic podobného v kódu
aplikace není.
- mpis
- Člen | 65
S routováním jsem nic nedělal. Mám tam to ze sandboxu:
<?php
namespace App;
use Nette,
Nette\Application\Routers\RouteList,
Nette\Application\Routers\Route,
Nette\Application\Routers\SimpleRouter;
/**
* Router factory.
*/
class RouterFactory
{
/**
* @return \Nette\Application\IRouter
*/
public function createRouter()
{
$router = new RouteList();
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
}
}