28173 sujets

CSS et mise en forme, CSS3

Bonjour a tous,

Je suis en train de travailler sur mon prochain site de photo, apres 6 mois de chantier je commence a faire le tour de tout le site et toutes les fonctionnalites pour etre sur de n'avoir rien oublier et tester les actions d'utilisateurs que je n'attendrais pas.

En mettant awstats en place, je me suis rendu compte que j'avais beaucoup d'erreur 404 sur un fichier css.

Alors pour faire simple, dans chaque page j'ai cela:
<link rel="stylesheet" href="<? print "http://".$_SERVER["SERVER_NAME"]."/_includes/"; ?>style.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="<? print "http://".$_SERVER["SERVER_NAME"]."/_includes/"; ?>style_menu_vertical.css" type="text/css" media="screen"/>


J'ai separe les css en deux fichiers pour pouvoir passer d'un menu vertical a horizontal d'une page a une autre.

Dans les navigateurs tout marche bien, mais lorsque j'affiche le code source de n'importe quelle page j'ai cela:

<link rel="stylesheet" href="_includes/style.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="http://www.xxxxxxx.org/_includes/style.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="http://www.xxxxxxxx.org/_includes/style_menu_vertical.css" type="text/css" media="screen"/>


La premiere ligne de balise link apparait je ne sais comment et c'est elle qui me genere un 404 car j'utilise de l'url rewriting et que dans une page d'un sous repertoire du type /fr/ le navigateur demande /fr/_includes/style.css

Je sais que je pourrais contourner ce probleme en mettant une regle de rewriting mais j'aimerais comprendre pourquoi une telle ligne apparait alors qu'elle n'est pas dans le code source.

J'ai pense au fait que le css se trouve dans un sous repertoire et que le navigateur ou le serveur cherche dans le repertoire courant avant mais je n'ai rien trouve sur le net comme explication.
Petit UP avec un peu plus d'information.

Voila un extrait de mon log erreur d'apache:

[Wed Nov 22 16:14:25 2006] [error] [client xxxxxxxxxx] File does not exist: /home/sites/xxxxxxxxx.org/www.xxxxxxxx.org/htdocs/fr, referer:  http://www.xxxxxxxx.org/fr/exprimez-vous/forum/commentaires-sur-les-photographies-3.html
 

Sachant que /fr/exprimez-vous/forum sont des répertoires virtuels.

Et voici mes regles de rewriting pour la partie concernée (mais c'est pareil partout):

Ca c'est pour ne pas réecrire les appels directs aux fichiers existants
RewriteCond %{REQUEST_URI}      ^/_includes
RewriteRule (.*) $1 [L]


J'ai testé aussi sans le ^ au début sans succès.

Et cela pour traiter l'url virtuelle et rediriger vers la bonne page
RewriteRule ^/fr/exprimez-vous/forum/[-a-zA-Z0-9]+-([0-9]+)\.html$	/exprimez-vous.php?%{QUERY_STRING}&lang=fr&catid=$1 [L]


Si vous avez une piste à me donner je suis preneur, surtout pourquoi le stylesheet est rajouté sachant que ceux que j'ai déclairés sont pris en compte normalement a l'affichage.