2011-08-24 3 views
0

J'ai deux pages HTML. Je voudrais éviter de répéter le balisage, comme la tête, la navigation, etc. Par exemple, est une page ici:Évitez les répétitions HTML

<head><title>Los Pollos Hermanos</title></head> 
<body>About Us</body> 

Et voici une autre:

<head><title>Los Pollos Hermanos</title></head> 
<body>Contacts</body> 

Je n'aime pas répétez les choses, donc, je veux déplacer la partie tête + titre, dans un fichier séparé, puis appelez ce fichier séparé à partir d'autres pages. C'est la bonne route? Quelle est la pratique?

+1

Vous créez simplement un site Web statique, ou est-il un moteur particulier que vous utilisez? – CtrlDot

Répondre

1

Cela dépend de la langue que vous utilisez. Si vous voulez le faire strictement en HTML, voyez si votre serveur supporte shtml. Si c'est le cas, vous pouvez utiliser includes pour lire le fichier dans un autre fichier.

<!--#include FILE="filename.html"--> 
+0

Les SSI ne sont pas HTML. – Quentin

+0

Je l'ai mal formulé. Je comprends que ce n'est pas du HTML, mais c'est la chose la plus facile à ajouter si le serveur est configuré pour le supporter, sans traiter de langages comme PHP, ASP, etc. – fanfavorite

2

Utilisez un langage modèle. Celui que vous choisirez dépendra de ce que votre serveur supporte et de vos préférences personnelles.

Toutes choses étant égales, j'utiliser Template Toolkit car il peut être utilisé par lui-même à moment de la construction (avant de la télécharger et sans avoir besoin du serveur pour soutenir quoi que ce soit au-delà des fichiers statiques) grâce à ttree et peut être utilisé à runtime de Perl.

Il existe un bon introductory tutorial pour utiliser TT pour générer du contenu Web.

1

vous ne pouvez pas directement à partir de html, mais c'est assez simple si vous utilisez php ou asp ou quelque chose comme ça pour générer le code HTML. vérifier include si php, par exemple

0

Une approche classique consiste à avoir une mise en page contenant un pied de page et un en-tête. Ensuite, vous décorez vos pages avec votre mise en page comme ceci:

_________layout________ 
| ________________ | 
| | header  | | 
| |_______________| | 
| _________________ | 
| |    | | 
| | specific  | | 
| | page  | | 
| |    | | 
| |_______________| | 
| ________________ | 
| | footer  | | 
| |_______________| | 
|_____________________| 

C'est ce que font la plupart des frameworks web.

0

Dans ASP.Net, vous pouvez utiliser ce que l'on appelle une page principale. Dans ASP.Net MVC, un concept similaire utilisant des pages de mise en page. Vous définissez tout ce contenu dans le maître et définissez une balise indiquant l'emplacement du contenu "changeant". Ensuite, d'autres fichiers (pages) définissent ce qui s'affiche dans ces zones définies dans le modèle.

1

Vous pouvez placer votre code commun dans un fichier .tpl et inclure ce lien dans la page. Par exemple

<!--#include virtual="../_tpl/header.tpl" --> 
<div class="content"> 

    some code goes here... 

</div> 

et dans le modèle d'en-tête vous placez tout votre code commun comme

<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>PAGETITLE</title> 
    <meta name="Keywords" content="" /> 
    <meta name="Description" content="" /> 
    <meta http-equiv="Content-Style-Type" content="text/css" /> 
    <meta http-equiv="Content-Script-Type" content="text/javascript" /> 


    <link rel="stylesheet" type="text/css" media="all" href="..." /> 

    <script type="text/javascript" src="....."></script> 

</head>