2 Serveur Web KC3 HTTPd

Les fichiers sources du serveur web KC3 HTTPd se trouvent dans le répertoire /httpd.

2.1 Dépendances

Le serveur web dépend des éléments suivants :

  • KC3
    • libkc3
    • event
    • socket
    • http
  • SASS pour le rendu CSS
  • ESBuild pour le rendu JavaScript

2.2 Configuration

Le serveur web doit être lancé dans un répertoire contenant les fichiers suivants :

./app/controllers/     # Répertoire des contrôleurs (.kc3)
./app/templates/       # Répertoire des templates (.ekc3)
./app/views/           # Répertoire des vues (.kc3)
./assets/              # Répertoire des ressources
./assets/css/          # Répertoire CSS
./assets/css/app.scss  # CSS de l'application, compilé en ./static/_assets/app.css
./assets/js/           # Répertoire JavaScript
./assets/js/app.js     # JavaScript de l'application, compilé en ./static/_assets/app.js
./assets/node_modules/ # Modules npm
./config/routes.kc3    # Routes dynamiques
./static/              # Fichiers statiques
./static/_assets/      # Fichiers de ressources statiques
./static/_fonts/       # Fichiers de polices statiques
./static/_images/      # Fichiers d'images statiques

2.3 Exemple

Exécutez make test_httpd pour lancer le serveur web KC3 HTTPd (httpd/kc3_httpd) en utilisant le répertoire de travail test/httpd.

Ce répertoire contient un exemple de configuration et d'utilisation de kc3_httpd.

Les fichiers statiques sont servis depuis ./static et sont accessibles à la racine de l'URL (/).

La documentation au format Markdown et HTML est servie depuis l'URL /doc/. La documentation dispose d'une route personnalisée définie dans ./config/routes.kc3, d'un contrôleur défini dans ./app/controllers/doc_controller.kc3 et de quelques templates définis dans ./app/templates/doc/.

La mise en page principale de l'application est définie dans ./app/templates/layout.html.ekc3 et ./app/templates/nav.html.ekc3. Notez l'extension .html.ekc3, ce sont des fichiers HTML avec du code KC3 intégré. Consultez la documentation EKC3 pour plus d'informations sur ces fichiers.