8791 sujets

Développement web côté serveur, CMS

Bonjour à tous ceux qui voudront bien lire ce sujet,

je me trouve actuellement confronté à un problème des plus intéressant (de mon point de vue en tout cas car je ne l'avais jamais rencontré jusque la).

(j'espère que c'est la bonne catégorie, j'hésitais entre "HTML", "CSS" et "Langage serveur".. mais vu qu'il y a un peu des trois :s).

Je m'expose :

sur le site que je suis en train de réaliser, afin de m'y retrouver plus facilement, j'utilise des variables défini avec des chemins absolus (défini par exemple avec :
$dir = dirname(__FILE__);
define("__PATH_CSS__", "$dir/css/");
)

donc ensuite j'inclus ma liste de css, ce qui donne un link de ce type

<link rel="stylesheet" type="text/css" href="C:\Program Files\wamp\www\tempos\trunk\www/general/css/index.css" />

Le css est inclu sans aucun problème sous IE mais il ne marche pas sous firefox (j'aurais préféré l'inverse, mais bon...) (quand je dis qu'il ne marche pas, aucun style ne s'affiche, c'est comme si je n'avais rien inclu)

Donc si quelqu'un a déjà rencontré ce problème et/ou connait la solution, ça m'arrangerait bien.

Merci d'avance
Modifié par imax (26 Jun 2008 - 09:45)
Bonjour,

(à mon avis c'est pour la catégorie Serveur, et pas Css)

Donc, pourquoi utiliser des chemins absolus ?
Deuxièmement, as-tu fais un phpinfo() ? Pour connaître les chemins absolus du point de vue d'Apache...
zzzazzz a écrit :
(à mon avis c'est pour la catégorie Serveur, et pas Css)
+1 (sujet déplacé)

zzzazzz a écrit :
Donc, pourquoi utiliser des chemins absolus ?
+1
J'utilise des chemins absolu pour un accès plus simple à certain fichier (l'arborescence fait que je ne sais pas toujours ou se trouve le css, donc au lieu de faire un gros paquet de ../../ j'utilise le chemin absolu).

Et je ne suis pas sur que cela soit un problème serveur, car jusqu'à preuve du contraire il n'y ai pas de raison que php passe sous IE et pas sous ff (si c'était le cas il y aurait un problème sachant que l'exécution est côté serveur).

Le problème existe aussi si je rentre directement le chemin absolu dans un fichier html (donc le problème ne viendrait pas de php)

(donc ce sujet n'est pas non plus dans la bonne catégorie en langage serveur ^^.. dur dur de lui trouver une place.. dans la section html?)
Modifié par imax (26 Jun 2008 - 10:32)
Salut imax et bienvenue Smiley cligne ,

je pense qu'on est d'accord pour dire que ce sujet n'a rien à faire dans la partie CSS puisqu'il ne s'agit que d'un problème de lien vers un fichier.

Comme il se trouve que tu construis ce lien dynamiquement à l'aide de PHP il me semble que ce sujet est à sa place (et d'ailleurs tout ça n'est pas si grave Smiley lol !)

Sinon, tu pourrais jeter un oeil à ce point de la FAQ.

A+
merci pour l'accueil.

En effet, je construis ce lien dynamique, mais si je ne le faisais pas cela reviendrait au même.

Mon lien dynamique me donne

<link rel="stylesheet" type="text/css" href="C:\Program Files\wamp\www\tempos\trunk\www/general/css/index.css" />


mais si je construis un fichier html avec ce même lien directement en dur (sans génération via php), cela ne fonctionne toujours que sous ie et pas sous ff.

Il est vrai que j'ai peut être un peu brouillé la donne au début en parlant du php, mais finalement il n'a pas grand chose à voir la dedans (mes excuses).

Donc la question est plus, pourquoi un lien absolu dans un css ne marche pas sous ff et marche sous ie.

j'espère que c'est un peu plus précis,

merci d'avance si quelqu'un a au moins un début de piste
Salut,

Le point de la FAQ donné par Heyoan est légèrement douteux quant aux termes employés : Sur le Web et En php désignent en fait les aspects local et distant (par rapport au serveur). PHP n'a aucune influence là-dedans et s'apparente au coté serveur.

Lors de la génération de la page, tout est fait par le langage serveur. Les inclusions de fichiers (fonction include en PHP) se font donc de manière locale via le système de fichiers du serveur. Tu peux identifier le dossier racine de ton site sur le système de fichiers avec $_SERVER['DOCUMENT_ROOT']. Sous windows et avec le premier dossier www en root :
echo $_SERVER['DOCUMENT_ROOT'];

produira
C:\Program Files\wamp\www

Bien faire attention que la conf du serveur est la même pour tous tes sites locaux, donc ton sous-dossier de dév (tempos) n'apparait pas. Si ton site est dédié à une mise en ligne, le mieux est de créer un hôte virtuel pour avoir une conf identique et s'éviter des tests d'IP locales par exemple. Le dirname sur un script à la racine est une solution mais... voir plus loin.

Le lien d'une ressource (css, image...) à ta page HTML est lui effectué par ton navigateur, il est distant du serveur et y accède via l'url du site. Le plus simple est de cibler la racine du site avec / (slash).
<link rel="stylesheet" type="text/css" href="/tempos/trunk/www/general/css/index.css" />

Idem, tu es obligé d'ajouter le sous-dossier en dév, pas très pratique et dirname n'est plus efficace ici. L'hôte virtuel élimine ce problème.

Et enfin, pourquoi "C:\..." ne fonctionne pas avec FF : il manque le protocole file:// indiquant que le fichier est local... au client. Ce qui est une énormité si tu mets ton site en ligne puisque le navigateur de monsieur-tout-le-monde ira chercher le fichier sur... le disque local du client (en supposant qu'un disque C existe).
IE semble faire fi de ce protocole (sûrement sa connivence avec windows qui lui fait automatiquement identifier C: comme un disque local).

a+
a écrit :
IE semble faire fi de ce protocole (sûrement sa connivence avec windows qui lui fait automatiquement identifier C: comme un disque local).

+1