špatné odkazy v nette 2.2.3

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

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
+
+1
-

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
+
-3
-

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
+
+1
-

Precti si, jak funguje routovani. Prepisovat ti sem celou dokumentaci nebudu.

mpis
Člen | 65
+
-2
-

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í.

David Matějka
Moderator | 6445
+
0
-

Tak nam ukaz, jak mas nastaveny routovani

mpis
Člen | 65
+
0
-

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;
	}

}

mpis
Člen | 65
+
+1
-

Zrušte akci.
Matěji, díky za nakopnutí. Vyřešeno.
Pro začátečníky, jako jsem já, třeba to někomu pomůže:
Chyběl mi následující řádek v bootstrap.php.

$container->router = new SimpleRouter('Homepage:default');