Verzeichnisstruktur

Eine Herbie-Website ist in der Regel wie folgt aufgebaut:

project
├── site
├── vendor
└── web
    ├── assets
    ├── cache
    ├── media
    ├── .htaccess
    └── index.php

Wofür diese Dateien und Verzeichnisse stehen, siehst du in der folgenden Tabelle:

Datei/Verzeichnis Beschreibung
project Dein Projektverzeichnis auf dem Webserver.
site Der eigentliche Inhalt der Website (siehe unten). Dieses Verzeichnis ist normalerweise nicht über das Web zugänglich. Es kann aber auch im öffentlichen Verzeichnis abgelegt werden.
vendor In diesem Verzeichnis ist Herbie mit allen abhängigen Komponenten und Drittanbieter-Programmen enthalten. Hier solltest du nichts anpassen. Dieses Verzeichnis ist nicht über das Web zugänglich.
web Das öffentliche Verzeichnis deines Webservers. Du hast darauf über den Webbrowser Zugriff.
web/assets Die Ablage für JavaScript-, CSS- und Bilddateien, welche für das Layout der Website benötigt werden.
web/cache Der Cache für Dateien, die öffentlich zugänglich sein sollen, z.B. verkleinerte Bilder.
web/media In diesem Verzeichnis sind Dateien abgelegt, die du über deine Inhalte verlinkt hast. Zum Beispiel Bilder, PDFs, Videos, MP3s, etc.
web/.htaccess Falls in deinem Projekt die Option nice_urls aktiviert ist, muss diese Datei mit den entsprechenden Anweisungen vorhanden sein.
web/index.php Die Bootstrap-Datei und Teil von Herbie. Über diese Datei laufen alle Anfragen an den Webserver.

site-Verzeichnis

Normalerweise arbeitest du ausschliessliche im site-Verzeichnis deines Webprojektes. Dieses ist in der Regel wie folgt aufgebaut:

site
├── assets
├── cache
├── config
|   ├── plugins
|   |   ├── imagine.yml
|   |   └── video.yml        
|   └── main.yml
├── data
|   └── persons.yml
├── layouts
|   ├── head.html
|   ├── footer.html
|   ├── error.html
|   └── default.html
├── pages
|   ├── index.md
|   ├── company
|   |   ├── index.md
|   |   ├── about-us.md
|   |   ├── our-vision.md
|   |   └── team.md
|   ├── services.md
|   └── contact.md
├── plugins
├── posts
|   ├── 2013-10-29-my-third-blog-post.md
|   ├── 2007-10-29-my-second-blog-post.md
|   └── 2007-10-29-my-new-blog.md
└── twig

In der folgenden Tabelle siehst du wiederum, wofür jede dieser Dateien und Verzeichnisse stehen:

Datei/Verzeichnis Beschreibung
assets Das Assets-Verzeichnis von Herbie. Darin sind CSS- und JS-Dateien abgelegt, die zur Laufzeit ins Web-Assets-Verzeichnis kopiert werden.
cache Das Cache-Verzeichnis von Herbie. Darin werden z.B. Twig Cache-Dateien gespeichert.
config
- main.yml
- plugins
Das Konfigurationsverzeichnis mit Dateien im YAML-Format (die Hauptdatei kann auch eine PHP-Datei sein). Konfigurationen für Plugins sind als einzelne Dateien im Unterordner plugins abgelegt.
data Das Daten-Verzeichnis, im dem verschiedene Daten-Dateien im YAML-Format gespeichert werden können.
layouts Das Layout-Verzeichnis der Website. Hier sind HTML- bzw. TWig-Dateien abgelegt, die für das Aussehen der Website zuständig sind.
pages Die CMS-Seiten der Website. Diese sind als Textdateien (Markdown, Textile, Text, HTML) abgespeichert.
posts Die Blog-Posts der Website. Diese sind ebenfalls als Textdateien abgespeichert.
plugins In diesem Verzeichnis sind deine Plugins abgelegt. Plugins verwaltest du einfach über Composer.
twig In diesem Verzeichnis sind Twig-Filter, Twig-Funktionen und Twig-Tests abgelegt.

.htaccess-Datei

Falls in deinem Projekt die Option nice_urls aktiviert ist, muss im web-Verzeichnis eine .htaccess-Datei mit den entsprechenden Anweisungen vorhanden sein.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Damit werden - vereinfacht gesagt - alle Seitenaufrufe an die zentrale Bootstrap-Datei weitergereicht. Dies ist zum Beispiel für die Suchmaschinen-Optimierung wichtig, aber auch für die Besucher deiner Website.

Bitte beachte, dass obige Konfiguration für den Apache Webserver ausgelegt ist.