balise <base href=""/> et IE7

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : balise <base href=""/> et IE7

par Victor BRITO » 19 nov. 2008, 16:39

Le doctype est strictement le même dans les deux bouts de code. Ce qui change, c'est l'absence des attributs xml:lang et lang au niveau de l'élément html. Mais, je ne crois pas que le problème vienne de là (soit dit en passant, les attributs xml:lang et lang sont importants pour préciser la langue principale de la page, ce qui est fort utile aux moteurs de recherche et aux synthèses vocales ;) ).

De plus, si tu prenais le temps de lire la spécification HTML du W3C (sur laquelle repose aussi le XHTML), et plus particulièrement la section sur l'élément base, tu remarquerais ceci à propos de l'attribut href de cet élément :
This attribute specifies an absolute URI that acts as the base URI for resolving relative URIs.
En français :
Cet attribut spécifie un URI absolu qui agit comme l'URI de base pour résoudre les URIs relatifs.
Autrement dit, à la page http://www.monsite.fr/dossiervirtuel1/d ... /page.html, l'élément base doit ressembler à ça :

Code : Tout sélectionner

<base href="http://www.monsite.fr/dossiervirtuel1/dossiervirtuel2/page.html" />

par dread » 19 nov. 2008, 16:28

Après une tentative désespérée, j'ai finalement trouvé d'où venait mon problème, la seule différence entre mes deux sites: le doctype.

En effet, sur le site où je rencontrais le problème, j'avais comme doctype:

Code : Tout sélectionner

<!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" xml:lang="fr" lang="fr">
alors que sur mon autre site, j'avais celui-ci:

Code : Tout sélectionner

<!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">
Même si mon problème est résolu, je veux bien un peu d'explication sur les raisons!!!

Merci.

par Victor BRITO » 19 nov. 2008, 16:21

Au lieu d'utiliser l'élément base, tu peux appeler les URLs et autres chemins depuis la racine du site. Autrement dit :

Code : Tout sélectionner

<link rel="stylesheet" href="/dossiercss/style.css" type="text/css" />

Code : Tout sélectionner

<a href="/dossiervirtuel1/dossiervirtuel2/page.html">un lien</a>

balise <base href=""/> et IE7

par dread » 19 nov. 2008, 15:52

Bonjour à tous!!

Je viens vers vous car je rencontre certaines difficultés à faire fonctionner la balise <base href=""/> avec IE 7
En effet, via un htacces, je réécris certaines de mes url de la façon suivante:

dossiervirtuel1/dossiervirtuel2/page.html

Je rencontrait donc des problèmes concernant les fichiers CSS dont le chemin n'était plus retrouvé. C'est pourquoi j'utilise la balise <base href=""/> que je place dans la balise head en premier.

J'ai déjà effectué cette démarche sur un autre de mes sites, où la réécriture d'url est identique et où j'utilise aussi base href="". Cependant je n'ai pas rencontré les mêmes problèmes.

Par exemple, sur le site où j'ai des problèmes, il a fallut sur les liens a href que je mette un "/" devant pour éviter sous IE 7 que depuis une adresse du style" http://www.monsite.fr/dossiervirtuel1/d ... /page.html" lorsque je cliquais sur un autre lien de la page que mon url devienne : " http://www.monsite.fr/dossiervirtuel1/d ... page2.html"

De même, les liens vers mes feuilles de styles CSS et images ne fonctionnent pas. Si je veux que cela marche, il faudrait que je mette des "../../" devant dossier/page.css ce qui n'était pas le cas sur mon autre site.

J'avoue que je n'y comprend rien puisque pour moi, je repartais sur le même principe pour les deux sites.

Y'a t'il autre chose que je n'aurais pas effectué en dehors du base href et de la réécriture sur le htacces?

Merci par avance pour toute aide apportée.