Nový presenter – stránka nenalezena

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

Zdravím, stáhl jsem si Nette, rozbalil složku sandbox s předpřipravenou kostrou a spustil – vše funguje jak má. Dále jsem vytvořil nový presenter GuessPresenter.php, obsah:

<?php
class GuessPresenter extends BasePresenter
{
    //put your code here

    public function actionDefault()
    {

    }

    public function renderDefault()
    {
        $this->template->message = 'OBSAH!';
    }
}
?>

Dále složku Guess ve složce templates a v ní default.phtml, který obsahuje:

{block content}

<div id="message">
    {$message}
</div>

Výsledek: stránka nenalezena! Pokud změním v bootstrap.php:

<?php
$router[] = new NRoute('index.php', array(
	'presenter' => 'Homepage',
	'action' => 'default',
), NRoute::ONE_WAY);

$router[] = new NRoute('<presenter>/<action>/<id>', array(
	'presenter' => 'Homepage',
	'action' => 'default',
	'id' => NULL,
));
?>

na:

<?php
$router[] = new NRoute('index.php', array(
	'presenter' => 'Homepage',
	'action' => 'default',
), NRoute::ONE_WAY);

$router[] = new NRoute('<presenter>/<action>/<id>', array(
	'presenter' => 'Guess',
	'action' => 'default',
	'id' => NULL,
));
?>

… tak to funguje, ale nefunguje samozřejmě pak Homepage :) Bohužel si s tím nevím rady, takže bych ocenil jakoukoli pomoc, vsadím se, že to bude nějaká hloupost, kterou jsem přehlédl…

Aurielle
Člen | 1281
+
0
-

Routy nech tak jak jsou, a na ten presenter by ses měl dostat přes http://localhost/…ojekt/guess/

lordfrikk
Člen | 5
+
0
-

Ano, samozřejmě. Základní stránka je http://localhost/todolist/www/ a pokud se přesunu na http://localhost/…st/www/guess tak mi Firefox (i Chrome) píše „The requested URL /todolist/www/guess/ was not found on this server.“

voda
Člen | 561
+
0
-

A máš aktivovaný mod_rewrite? Zakomentuj druhou routu a zkus adresu http://localhost/todolist/www/?….

Mikulas Dite
Člen | 756
+
0
-

Tak to potom bude problém s .htaccess, kde díky požadavku na '' a DirectoryIndex funguje jenom první strana.

lordfrikk
Člen | 5
+
0
-

voda napsal(a):

A máš aktivovaný mod_rewrite? Zakomentuj druhou routu a zkus adresu http://localhost/todolist/www/?….

Zakomentoval jsem a výsledkem je:

NBadRequestException #404

No route for HTTP request.

Mikulas Dite napsal(a):

Tak to potom bude problém s .htaccess, kde díky požadavku na '' a DirectoryIndex funguje jenom první strana.

Nevím proč, ale .htaccess, který je součástí sanboxu, obsahuje pouze:

Order Allow,Deny
Deny from all

Tak jsem to doplnil o:

<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>

Výsledek: přesměrování vždy na homepage (pokud použiju odkaz s normálními php parametry, pokud použiju „cool url“ tak je stránka nenalezena v případě GuessPresenter).

Editoval lordfrikk (5. 1. 2011 20:12)

Mikulas Dite
Člen | 756
+
0
-

Upravuješ špatný .htacess. Změň ten v rootu nebo v www (teď nevím, kde to má skeleton), každopádně to určitě nemá být ten s Deny from all.

lordfrikk
Člen | 5
+
0
-

To si nemyslím. Nicméně to postráda smysl, jelikož jsem celý adresář smazal a nainstaloval nejnovější 2.0-dev verzi tady z webu. Spustil sem adresář sandbox, který hned funguje (není nutné kopírovat Nette do /libs) a zajímá mě, jaké je defaultní chování, když mám zapnutý debug a snažím se dostat na nějakou adresu, pro kterou neexistuje presenter. Neměla by to být vyjímka? Já pořád dostávám stránka nenalezena… něco je špatně. Když vymažu template od Homepage tak to hned hodí rudou vyjímku, ale ono to vůbec neregistruje existenci nějakých dalších presenterů kromě toho základního…

BTW, v rootu žádný .htaccess defaultně není a ani jeho překopírování nepomůže (zobrazí se adresář).

Uvažuju, jestli by nestálo za to kompletně všechno přeinstalovat…

EDIT: Takže jak jsem říkal. Odinstaloval jsem vše, stáhl XAMPP, spustil a hned jakmile jsem zadal nějakou adresu pro kterou neexistoval presenter, tak vyjímka… nikdy bych nečekal, že to uvidím tak rád… hurá do práce :)

Editoval lordfrikk (5. 1. 2011 23:05)