2017-05-23 3 views
1

J'utilise côté serveur inclus pour organiser mes fichiers.côté serveur ne fonctionne pas pour les appels imbriqués

Les fichiers imbriqués ne semblent pas fonctionner. Pour exemple: -

index.shtml - cela fonctionne bien

<!doctype html> 
<html lang="en"> 
    <!--#include virtual="partials/head.shtml"--> 
<body> 
<!--#include virtual="partials/components/ads/horizontal-banner.shtml"--> 
<div id="site-wrapper"> 
    <header id="site-header"> 
     <!--#include virtual="partials/header.shtml"--> 
    </header> 

    <div id="site-body"> 
     <!--#include virtual="partials/pages/home.shtml"--> 
    </div> 

    <footer id="site-footer"> 
     <!--#include virtual="partials/footer.shtml"--> 
    </footer> 
</div> 
<!--#include virtual="partials/common.shtml"--> 

intérieur accueil.shtml, il y a un autre appel

<!--#include virtual="../components/newsletter.shtml"--> 

qui suit est la structure du projet: -

project 
- css 
- assets 
- js 
- partials 
    - components 
     - ads 
     horizontal-banner.shtml 
     vertical-banner.shtml 
     newsletter.shtml 
     help.shtml 
    - pages 
     home.shtml 
     about.shtml 
    header.shtml 
    footer.shtml 
    head.shtml 
    common.shtml 
index.shtml 

Répondre

0

Regardez la documentation de l'Apache - Server Side Includes:

L'utilisation d'un fichier pour inclure un en-tête et/ou un pied de page peut réduire le fardeau de ces mises à jour. Vous n'avez qu'à faire un fichier de pied de page, et puis l'inclure dans chaque page avec la commande include SSI. La fonction d'inclusion peut déterminer le fichier à inclure avec l'attribut de fichier ou l'attribut virtuel. L'attribut de fichier est un chemin de fichier , relatif au répertoire en cours. Cela signifie qu'il ne peut pas être un chemin de fichier absolu (en commençant par /), ni ne peut contenir ../ comme partie de ce chemin. L'attribut virtuel est probablement plus utile, et devrait spécifier une URL relative au document servi. Il peut commencer par un /, mais doit être sur le même serveur que le fichier servi.

Essayez de changer le accueil.shtml comme ceci:

<!--#include virtual="partials/components/newsletter.shtml"--> 

.. et le newsletter.shtml fichier doit être modifié de la même manière.

+0

Cela a fonctionné lorsque j'ai placé le dossier à l'intérieur de htdocs à l'intérieur de xampp. Quand je le place dans un répertoire normal, ça ne marche pas. Je ne sais pas pourquoi .... –

+0

Avez-vous essayé d'examiner les fichiers journaux d'accès et d'erreurs d'Apache? Il devrait y avoir une information sur le chemin incorrect si l'emplacement est le problème. –