2010-10-27 9 views
1

J'ai un fichier d'en-tête qui contient le tag html <head>. J'essaye de placer le <base href="/mysite/"> dans ce dossier, mais quand je l'inclue (comme dans mon dossier index.php), il ne change pas réellement mon href de base. Toutes les URL absolues dans index.php (par exemple /css/style.css) tentent de charger à partir de host/css/style.css plutôt que d'héberger host/mysite/css/style.css. Il semble que cela ne change pas la base lorsque j'utilise un fichier PHP inclus. Des moyens de résoudre ce problème sans avoir à revenir en arrière et à coder en dur chaque URL?Modifier la base href dans le fichier PHP inclus

Merci

fichier index.php

<?php 
include('_includes/inc_header.php'); 

fichier inc_header.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<base href="/mysite/html/" /> 
<link rel="stylesheet" href="/css/style.css" media="screen"/> 

La feuille de style ne se charge pas et voir la source révèle qu'il essaie de charger à partir host/css/style.css plutôt que host/mysite/css/style.css

+2

Il ne devrait pas avoir à importer que vous utilisez PHP pour générer le code HTML - le HTML lui-même devrait fonctionner. Pouvez-vous poster le code de sortie d'une page? – Konerak

+0

Ouais, montrer le code HTML généré –

Répondre

1

vous pouvez configurer un h virtuel sur votre serveur web qui pointe vers/mysite/en tant que racine du site.

+0

Je suis allé de l'avant et a fait cela .. Merci – Lincecum

1

Vous devez enlever la barre d'ouverture de sorte que le chemin doit être css/style.css

Notez que le chemin de base comprend déjà le slash. Vous devez également mettre l'URL complète dans l'attribut de base, non seulement le répertoire -

<base href="http://www.mydomain.com/mysite/html/" /> 

Si vous ne pouvez pas modifier les liens, vous devez soit définir la racine du document dans ce répertoire ou mettre en place une hôte virtuel.

+0

Yat-il un moyen de le faire sans avoir à changer chaque lien? C'est une copie de serveur que j'essaye de courir localement, ainsi je ne veux pas changer tous les liens. – Lincecum

+0

Fondamentalement tout ce que je veux est de changer le chemin de la racine pour se référer au dossier de ce site Web plutôt que la racine du serveur. (localhost/mysite/plutôt que localhost /) – Lincecum

+0

Si tous les liens incluent déjà la barre oblique finale, vous devez définir la racine du document sur ce dossier ou configurer un hôte virtuel. Il n'y a pas moyen de contourner cela –

Questions connexes