nefunkční routy v Nette 2 – 404 error
- darth
- Člen | 7
Narazil jsem na menší problém s routami v Nette 2. Stáhl jsem si skeleton a na defaultní akci Homepage:default vše funguje v pohodě.
Když ale přidám další akci, končím na chybě
The requested URL /Users/darth/Sites/aldor/www/index.php was not found on this server.
Soubor ale existuje a error log apache nezobrazuje žádnou chybu přístupu. Práva má nastaveny na normálně na 644.
Akce v HomepagePresenteru vypadá následovně
public function renderItem($id)
{
$model = new CategoriesModel();
$this->template->item = $model->findById($id);
}
kde model vrací jednoduše data z pole. Šablona pro akci obsahuje jednoduše
{block content}
{$id}
a routy vypadají následovně
$router[] = new NRoute('kategorie/<id>', 'Homepage:item');
$router[] = new NRoute('<presenter>/<action>[/<id>]', 'Homepage:default');
Link se mi ale na akci s URL /kategorie vygeneruje správně. Dokonce i pokud změním hlavní routě default akci na item
$router[] = new NRoute('<presenter>/<action>[/<id>]', 'Homepage:item');
tak 404 error nedostanu a akce se vyrenderuje správně.
Taky jsem prošel httpd.conf u Apache a všude mám nastaveno AllowOverride All.
edit: Tak jsem zkusil app hodit na hosting kde jsem již dříve používal Nette a tam funguje bez problému, takže to vypadá na problém v lokální konfiguraci. Používám PHP 5.3.3 na Apache 2.2.15 na OS X 10.6.6.
edit2: Po další troše zkoumání jsem zjistil, že problém je pouze v /Users/darth/Sites/, pokud tu samou aplikaci dám do defaultního adresáře pro Apache /Library/WebServer/Documents tak běží v pořádku stejně jako na hostingu. Podle nastavení v Apache to vypadá, že tam ale žádný rozdíl není, oba adresáře mají nastaveno
<Directory "/Users/darth/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
V čem by mohla být ještě chyba?
Editoval darth (23. 1. 2011 14:29)
- darth
- Člen | 7
Velikosti mám nastavené správně. Problém je že to nefunguje v ~/Sites ale v /Library/WebServer/Documents je všechno vpohodě, přitom nastavení se nijak neliší.
Jediná věc co mě napadla že by mohla vadit je tvar URL, který u ~/Sites je http://localhost/~darth/, tzn. že by Nette vadila ta tilda? Prozatím to řeším tak, že dělám softlink do kořenového adresáře Apache, ale to mi nepříjde jako ideální řešení.
Editoval darth (25. 1. 2011 19:35)