Page 1 sur 2

include et arborescence

Posté : 27 juin 2007, 20:06
par Snipy
Hello tout le monde,

Me revoici avec une question d'organisation encore :p

Je recherche une nouvelle fois la bonne méthode et cette fois ci dans le cadre de la fonction include.

J'ai actuellement divers dossiers (includes - membres - admins )

Mais parfois je galère lors de l'include car je dois jongler entre ../includes/monfichier ou /includes/monfichier

Mais la je suis confronté à un problème.

J'ai une page haut.php qui contient en gros l'entete (les balises head) et donc qui fait le lien avec le design.
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="includes/design.css" />
Et ma page haut.php est incluse dans la majorité des pages de tout les dossiers.

Quand la page est à la racine ça ne pose pas de problème, mais quand ma page se situe disons dans le dossier membre, alros le lien vers le design n'est pas bon car devrait etre : href="../includes/design.css" />

Je ne cherche pas comment résoudre ce probleme car je suis sur que ce n'est que le début. Je cherche plutot une manière de mieux gérer mes includes en fonctions dossiers.

Donc ce qui ont l'expérience de cela ou des liens à me donner. Je vous serais très reconnaissant.

Merci d'avance et bonne soirée

Posté : 27 juin 2007, 23:32
par AB
A priori je te dirais pourquoi ne pas mettre l'adresse complète de ta page includes/design.css plutôt que adresse relative?

Re: include et arborescence

Posté : 28 juin 2007, 01:08
par Hubert Roksor
je dois jongler entre ../includes/monfichier ou /includes/monfichier
D'ailleurs, j'en profite pour préciser que /includes/monfichier n'est pas exactement une URL relative (je ne connais pas le terme exact, elle représente la racine du site), elle représentera toujours le même fichier du moment que le nom de domaine du site ne change pas. Si une URL commence par / c'est comme si elle commençait par http://<domaine_du_site>/

Posté : 28 juin 2007, 01:43
par Klomac
Effectivement il faut que tu indiques la racine de ton site dans l'URL : /includes/design.css

Ça pointera vers le même fichier peu importe la page où tu places le lien :)

Posté : 28 juin 2007, 15:43
par Snipy
OK donc en local j'ai mis

href="http://127.0.0.1/Nevrus/includes/design.css" />

Ce qui marche effectivement bien.
Mais il n'y a pas plus simple ou du moins plus universelle ?
Car quand je vais uploader tout ça je serais obliger de modifier en fonction du nom de domaine ou autre.

Posté : 28 juin 2007, 16:00
par fab
Faut faire en sorte que tes fichiers appelés change pas de répertoire :) ( tu peux faire des fichiers cons genre des simple alias à la racine )

Posté : 28 juin 2007, 16:08
par Klomac
OK donc en local j'ai mis

href="http://127.0.0.1/Nevrus/includes/design.css" />

Ce qui marche effectivement bien.
Mais il n'y a pas plus simple ou du moins plus universelle ?
Car quand je vais uploader tout ça je serais obliger de modifier en fonction du nom de domaine ou autre.
Pas href="http://127.0.0.1/Nevrus/includes/design.css"

mais

href="/Nevrus/includes/design.css"

Posté : 28 juin 2007, 16:32
par Snipy
En effet ça marche, mais "nevrus" c'ets le nom de mon dossier qui regroupe toute mes pages (car travail en local là)
Mais par la suite quand j'uploaderais sur mon serveur, il n'y aura plus le dossier nevrus .

Une modifications des pages sera donc obligatoire :?

Posté : 28 juin 2007, 19:57
par Klomac
Dans ce cas tu mets /includes/design.css et tu ajoutes la balise suivante dans ton <head> :

<base href="/Nevrus" />

Posté : 28 juin 2007, 20:46
par naholyr
J'ai pour habitude dans toutes mes applications web de définir dans un fichier de config global :
- le chemin vers la racine du site
- l'url du site

Et quand je mets à jour le site sur le serveur de prod ce fichier de config n'est pas modifié, et ça roule.

Posté : 28 juin 2007, 20:54
par Klomac
Oui, tant qu'à faire ;)

Posté : 28 juin 2007, 21:04
par AB
J'ai pour habitude dans toutes mes applications web de définir dans un fichier de config global :
- le chemin vers la racine du site
- l'url du site

Et quand je mets à jour le site sur le serveur de prod ce fichier de config n'est pas modifié, et ça roule.
Heu.. tu ne voulais pas dire "Et quand je mets le site sur le serveur de prod, il n'y a qu'a modifier ce fichier de config, et ça roule" ?

J'utilise le même principe + également pour mes connexions bdd :wink:

Posté : 28 juin 2007, 21:51
par naholyr
Heu.. tu ne voulais pas dire "Et quand je mets le site sur le serveur de prod, il n'y a qu'a modifier ce fichier de config, et ça roule" ?
Non je voulais dire que je copie tout sauf le fichier de config. Si j'envoie le fichier de config avec le reste, forcément il faut le remodifier pour le serveur donc c'est idiot autant ne pas l'inclure :) c'était juste ça que je précisais.

Posté : 28 juin 2007, 23:50
par AB
J'ai pour habitude dans toutes mes applications web de définir dans un fichier de config global :
- le chemin vers la racine du site
- l'url du site

Et quand je mets à jour le site sur le serveur de prod ce fichier de config n'est pas modifié, et ça roule.
Ah oui, j'ai compris pourquoi je n'avais pas saisi tout de suite ta réponse. Comme Snipy ne connaissait peut-être pas cette méthode, je me suis mis à sa place et à la suite de l'étape de la création des fichiers de config, j'attendais : "Seuls ces fichiers sont donc différents en local et sur le serveur distant".

Oula, je me mets à raisonner comme un script, et je bug car je ne comprends plus les sous-entendus :? Faudra que je me remette un peu au piano pour faire fonctionner la touche humanisation :lol:

Posté : 29 juin 2007, 14:53
par Snipy
J'ai pour habitude dans toutes mes applications web de définir dans un fichier de config global :
- le chemin vers la racine du site
- l'url du site

Et quand je mets à jour le site sur le serveur de prod ce fichier de config n'est pas modifié, et ça roule.
ok !

Tu le stock dans une simple variable ou tu utilises ce que disais Klomac
<base href="/Nevrus" />