Statický web v Nette – nakopnutí

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

Dobrý den,

snažím se vytvořit jednoduchý statický web v nette 2.2.3 dle tutoriálu, ale narazil jsem hned na začátku. Můžete mi prosím poradit ?

  1. nainstaluji nette pomocí composeru
  2. ukázková šablona mi funguje
  3. zapnu si laděnku
  4. vytvořím v app/presenters BasePresenter.php
<?php

namespace App\Presenters;

use Nette,
        App\Model;


/**
 * Base presenter for all application presenters.
 */
abstract class BasePresenter extends Nette\Application\UI\Presenter {
 public function beforeRender(){
        parent::beforeRender(); // nezapomeňte volat metodu předka, stejně jako u startup()
        $this->template->menuItems = array(
            'Domů' => 'Homepage:',
            'Produkty' => 'Product:',
            'Kontakty' => 'Contact:',
        );
    }
}

potom vytvořím další HomepagePresenter.php:

<?php

namespace App\Presenters;

use Nette,
        App\Model;


/**
 * Homepage presenter.
 */
class HomepagePresenter extends BasePresenter
{

}
  1. a poté ContactPresenter.php a obdobně ProductPresenter.php:
<?php

namespace App\Presenters;

use Nette,
        App\Model;


/**
 * Contact presenter.
 */
class ContactPresenter extends BasePresenter
{

}
  1. nyní vytvořím v /app/templates jednoduchou šablonu @layout.latte:
<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">

        <title>{include #title}</title>

        <link rel="stylesheet" media="screen,projection,tv" href="{$basePath}/css/screen.css">
        <link rel="stylesheet" media="print" href="{$basePath}/css/print.css">
        <link rel="shortcut icon" href="{$basePath}/favicon.ico">
        {block head}{/block}
</head>

<body>
<header>
<nav>
    <ul n:inner-foreach="$menuItems as $item => $link">
        <li {ifCurrent $link}class="current"{/ifCurrent}>
        <a n:href="$link">{$item}</a>
    </ul>
</nav>
</header>
    <div id="cistic">
    </div>

   	{include #content}

</body>
</html>
  1. vytvořím v /app/templates adresáře Homepage, Product a Contact

a vložím do nich obdobné soubory s názvem default.latte, např.:

{block title}
    <title>Nette test - Úvod</title>
{/block}

{block content}
    <div>
        <p>Kontakty</p>
    </div>
{/block}

Pak tento web zobrazím v prohlížeči /myApp/www/ a vidím úvodní stránku, pokud klepnu na položku menu „Domů“, tak to funguje odkazuje se na /myApp/www/, pokud ale klepnu na položku Produkty nebo Kontakty, tak se otevře Error Not Found (odkazu je se na /myApp/www/product/ a /myApp/www/contact/). Zkoušel jsem upravovat presentery, ale nedari se mi měnit content.

David Matějka
Moderator | 6445
+
+1
-

error not found od nette nebo od apache? jsou tam jeste dalsi informace?

franko
Člen | 4
+
0
-

Omlouvam se , je to od apache .. vice info tam neni : The requested URL /myApp/www/product/ was not found on this server.

echo
Člen | 134
+
0
-

zkontroluj si zapnutý mod_rewrite v konfiguraci apache

franko
Člen | 4
+
0
-

mod_rewrite – modul byl již zavedený a v apache jsem upravil „AllowOverride“ a stále nic.

<Directory /var/www/html/>
    Options FollowSymLinks
    AllowOverride All
</Directory>

Editoval franko (14. 10. 2014 15:16)

franko
Člen | 4
+
0
-

Tak opravdu to bylo tim mod_rewrite, spatne jsem to upravil, musi se zde :

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be „All“, „None“, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All