Je suis sur le point de retravailler un ancien site HTML et je voudrais séparer l'en-tête et le pied de page du contenu dans des fichiers distincts, car ils seront communs à toutes les pages. L’auteur du site actuel vient de copier leur page index.html et de remplacer le corps du texte de chaque page suivante, en apportant des modifications au menu et en soulageant l’entretien.
Je pourrais utiliser la route SSI (Server Side Includes) et inclure un fichier d'en-tête et un fichier de pied de page dans chaque page pour supprimer le contenu commun, mais cela exigerait que je renomme tous les fichiers avec l'extension * .shtml, n'est-ce pas?
Toute autre option permettant d’inclure les fichiers d’en-tête et de pied de page sans modifier les extensions existantes (aucun contenu dynamique sur le site, par conséquent php, asp, etc. n’est pas justifiée).
(note: exécution de IIS 7.5 en tant que serveur Web)
Vous pouvez réellement utiliser n’importe quelle extension de fichier pour SSI (en fait, vous pouvez configurer votre serveur pour que n’importe quelle extension de votre choix soit analysée comme tout type de fichier ). Voici un tel guide pour IIS , cela semble assez simple.
Pour votre cas d'utilisation, cela semble être le meilleur moyen. L'utilisation de PHP ou d'ASP.net est certainement utile, car vous pourrez ajouter du contenu plus dynamique à l'avenir.
Une autre possibilité serait de créer votre propre "processus de construction". Vous devez extraire l'en-tête/le pied de page dans des fichiers séparés, puis écrire un programme (un script PHP) qui les rajoute aux fichiers HTML et enregistre les résultats dans un autre dossier, en tant que site autonome. Ensuite, vous venez de télécharger ce dossier en tant que site. Cependant, vous devrez exécuter votre script de construction chaque fois que vous modifiez une page, même une petite modification, de sorte qu'il risque de ne pas convenir.
Si php est une option, vous pouvez utiliser l'instruction include
pour appeler votre en-tête et votre pied de page chaque fois que vous devez les inclure dans une page à l'aide de <?php include 'header.php';?>
.
L'instruction include (ou require) prend tout le texte/code/marquage existant dans un fichier spécifié et le copie dans le fichier qui utilise l'instruction include. L'inclusion de fichiers est très utile lorsque vous souhaitez inclure le même code PHP, HTML ou texte sur plusieurs pages d'un site Web.
Y compris les fichiers enregistre beaucoup de travail. Cela signifie que vous pouvez créer un en-tête, un pied de page ou un fichier de menu standard pour toutes vos pages Web. Ensuite, lorsque l'en-tête doit être mis à jour, vous pouvez uniquement mettre à jour le fichier header.php.
Disons que nous avons un code pour l'en-tête dans un fichier appelé "header.php" qui ressemble à ceci:
<header class="header">Welcome to my website!</header>
Pour inclure le fichier d'en-tête dans une page, utilisez l'instruction include:
<html>
<body>
<?php include 'header.php';?>
<p>Some text.</p>
<p>Some more text.</p>
<footer class="footer"> ... </footer>
</body>
</html>
L'instruction require est également utilisée pour inclure un fichier dans le code HTML/PHP.
Cependant, il existe une grande différence entre inclure et exiger. Lorsqu'un fichier est inclus dans l'instruction include et que PHP ne peut pas le trouver, le script continue de s'exécuter. Toutefois, lors de l'utilisation de l'instruction require, une erreur fatale est générée:
require produira une erreur fatale (E_COMPILE_ERROR) et arrêtera le scriptUse require when the file is required by the application.
include ne produira qu'un avertissement (E_WARNING) et le script continueraUse include when the file is not required and application should continue when file is not found.
Il est toujours préférable de descendre dans le sens PHP en utilisant:
<?php require_once "header.php"; ?>
<!-- page HTML here -->
<?php require_once "footer.php"; ?>
que de passer à index.php
même s'il n'y a pas de contenu dynamique sur le site Web pour le moment. Vous pouvez ajouter du contenu dynamique à une date ultérieure à celle requise de toute façon et avoir le même problème que vous avez maintenant en le modifiant à une date ultérieure.