Routování funguje lokálně, ne na serveru
- Lampicka
- Člen | 3
Ahoj,
začínám s Nette a učím se podle tutoriálu: https://doc.nette.org/…/single-post
Podobně jako v tutoriálu mám na hlavní stránce několik odkazů, ze
kterých se odkazuji na vygenerované stránky. Na lokálu mi vše funguje,
vygeneruje se mi stránka třeba http://localhost:8000/lek/show?… a obsah, ale když to
stejné zkusím na serveru, dostanu Page not found
zprávu na
adrese http://www.stud.fit.vutbr.cz/…www/lek/show?… .
HomepagePresenter:
namespace App\Presenters;
use Nette;
class HomepagePresenter extends Nette\Application\UI\Presenter{
public $database;
public function __construct(Nette\Database\Context $database){
$this->database = $database;
}
public function renderDefault(){
$this->template->lek = $this->database->table('lek')
->order('id_lek DESC')
->limit(5);
}
}
default.latte:
{block content}
{foreach $lek as $l}
<div class="lek">
<div class="date">{$l->id_lek}</div>
<h2><a n:href="Lek:show $l->id_lek">{$l->nazev}</a></h2>
<h2>{$l->nazev}</h2>
<div>{$l->nazev}</div>
</div>
{/foreach}
{/block}
LekPresenter:
namespace App\Presenters;
use Nette;
use Nette\Application\UI\Form;
class LekPresenter extends Nette\Application\UI\Presenter
{
/** @var Nette\Database\Context */
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
public function renderShow($id_lek)
{
$lek = $this->database->table('lek')->get($id_lek);
if (!$lek) {
$this->error('Stránka nebyla nalezena');
}
$this->template->lek = $lek;
}
}
show.latte:
{block content}
<p><a n:href="Homepage:default">← zpět na výpis leku</a></p>
<h1 n:block="nazev">{$lek->nazev}</h1>
<div class="nazev">{$lek->nazev}</div>
Kdyby mi mohl někdo poradit, v čem je problém, moc by mi to pomohlo.
- LukasV
- Člen | 5
@Lampicka Pravděpodobně tam máš něco s mod_rewrite
.
Podívej se třeba sem: https://forum.nette.org/…cnim-serveru
- Lampicka
- Člen | 3
Zkoušel jsem na serveru rozchodit Nette Requirements Checker, abych viděl,
jestli je dostupný mod_rewrite, ale dozvěděl jsem se jenom že
„Requirements Checker is available only from localhost“.
Na RewriteBase jsme se koukal, ale úplně nevím jak zjistit, na co to přesně
nastavit.
- Lampicka
- Člen | 3
CZechBoY napsal(a):
Já používám toto pro pro nezměněnou adresářovou strukturu (jako ta v sandboxu nebo web-project):
samozřejmě v podsložceslozka
– u tebe to budeIIS
RewriteEngine on RewriteBase /~xlogin00/slozka/ RewriteRule (.*) /~xlogin00/slozka/www [R=301,QSA,L]
Upravil jsem to na svoje adresáře na:
RewriteEngine on
RewriteBase /~xsvobo0z/IIS/ordinace/
RewriteRule (.*) /~xsvobo0z/IIS/ordinace/www [R=301,QSA,L]
ale teď po připojení na www.stud.fit.vutbr.cz/…rdinace/www/ dostanu
This page isn’t working. www.stud.fit.vutbr.cz redirected you too many times.
Asi to cyklicky redirectuje.
Adresáře mám takhle:
WWW
|-- IIS
|-- ordinace
|-- www
|-- app
|-- log
|-- temp
...