Bonjour,

En tant que petit nouveau, je salue tout le monde.

Je débute en php et j'ai tenté (avec succès partiel) d'implémenter la méthode de l'inclusion php (voir tuto comment alléger son site web).

L'objectif étant pour moi de réutiliser sur chaque page de mon site "l'entête" du site ainsi que le "pied de page" (commun à toutes les pages) et donc d'alléger la maintenance et le poids du site.

Ca fonctionne parfaitement pour les pages sous la racine du site.
Ca merde complétement pour les pages qui sont stockées dans un sous repertoire. Je m'explique :
Si j'appele une page située dans un sous répertoire, le css ainsi que les images appelées dans la page "d'include" ne sont pas trouvés.
Ca semble normal car le chemin d'appel est alors erroné (d'aprés ce que j'ai constaté).
Sauf que ca ne m'arrange pas du tout et je suis preneur si quelqu'un connait la combine.

Merci,

Xen

P.s : Bravo à l'équipe pour ce site génial.
Coucou,

Tu peux essayer de remplacer le lien relatif :
<link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />

par un lien absolu :
<link rel="stylesheet" type="text/css" href="http://forum.alsacreations.com/css/style.css" media="screen" />

ça devrait fonctionner.
Un grand Merci,

Ca marche nickel mais est-ce bien "propre" ?.

Peut-être que je veux le beurre et l'argent du beurre là ??

Xen
buh31 a écrit :
Tu peux essayer de remplacer le lien relatif :
<link rel="stylesheet" type="text/css" href="/css/style.css" media="screen" />

par un lien absolu :
<link rel="stylesheet" type="text/css" href="http://forum.alsacreations.com/css/style.css" media="screen" />

Très bonne idée. Par contre, si on lit tes exemples, dans les deux cas on a un lien absolu. Je reprends le premier exemple:
<link ... href="[b]/css/style.css[/b]" />

On indique ici un chemin vers le fichier depuis la racine du serveur. Le navigateur ira donc chercher le fichier suivant:
-http://www.example.com/css/style.css
que l'on soit à la racine du serveur ou dans un sous-sous-sous-sous-dossier. Smiley smile

La version «lien relatif» serait donc plutôt la suivante:
<link ... href="[b]css/style.css[/b]" />

(remarquez l'absence du / au début?)

Pour xen: cette solution est tout à fait «propre». Elle ne pose aucun problème technique à ma connaissance, et ce n'est ni un bidouillage ni une astuce. Juste une utilisation pertinente des possibilités de rédaction des chemins de fichiers.

À noter qu'on peut faire strictement la même chose pour appeler tout fichier depuis une page web: image de l'en-tête et diverses images de l'interface, scripts Javascript, fichiers SWF, etc.
Merci Florent,

J'ai testé avec un "vrai" relatif tel que tu l'expliques mais ....ca marche pas dans mon cas.


Xen
xen a écrit :
J'ai testé avec un "vrai" relatif tel que tu l'expliques mais ....ca marche pas dans mon cas.

Ben non, c'est bien le sens de mon explication:
- si on utilise un chemin relatif (css/styles.css), toutes les pages doivent se trouver au même niveau dans l'arborescence;
- si on utilise un chemin absolu (/css/styles.css), la page peut se trouver n'importe où tant que le nom de domaine (et le sous-domaine) reste le même.
Ok
Alors ce sera les chemins en "dur" si y a pas mieux mais ca m"emer.. un pneu quand même pour la maintenance..pas terrible.

Finalement, quelle est la bonne idée : include ou pas ?? suis plus très sûr ?

xen
Heu... je ne vois pas trop ce qui t'embête dans cette histoire?

Fais des chemins du style:
http://www.example.com/chemin/du/fichier.ext
ou bien du style:
/chemin/du/fichier.ext

Ça revient au même. La seule différence est que dans le deuxième cas, tu peux déménager le site de www.example.com vers blabla.autre-exemple.truc sans souci... si tu respectes la même architecture pour les fichiers.

Mais bon, la différence est minime. Pour ma part j'utilise la seconde forme, qui a l'avantage d'être plus courte. Smiley smile

Je ne vois pas trop à quels éventuels problèmes de maintenance tu fais allusion. Smiley ohwell

xen a écrit :
Finalement, quelle est la bonne idée : include ou pas ?? suis plus très sûr ?

Si les include te permettent de ne pas répéter du code (et donc de faire les modifications en une fois seulement), autant les utiliser, non?
En fait je débute donc sûr de rien.

Merci de m'avoir éclairci les idées.

Je vais faire comme tu dis car j'aime bien le principe de l'include.

ps: On considère donc le pb comme réglé
xen a écrit :
ps: On considère donc le pb comme réglé

Auquel cas tu peux le marquer comme [Résolu] en plaçant cette mention dans le titre de ton sujet: «[Résolu] Bla bla mon sujet».

Pour changer le titre du sujet: éditer (bouton d'édition en haut à droite) le tout premier message du sujet.