5568 sujets

Sémantique web et HTML

Bonjour,

j'aimerais vous soumettre un comportement étrange de IE auquel je suis confronté.

Bien que j'aie récupéré sur msdn l'algorithme qui permet à IE de deviner le type d'un fichier à partir du type mime fourni par le serveur + l'extension + le contenu, il semble que ce processus ne s'applique pas aux fichiers locaux.

Ainsi si on ouvre un fichier local sans extension appelé "test" dans IE, il nous affiche le code source !

Voici la procédure pour reproduire ce problème :

- 1) créer un fichier appelé "test" sans extension (pas de .html)

- 2 ) copier ce code source dedans :

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>test</title>
</head>
<body>
test
</body>
</html>

- 3) sauvegardez-le et faîtes un drag-n-drop it in IE : IE affiche le code source commme si ce n'était qu'un fichier texte !

- 4) raffraîchissez la page dans IE : cette fois IE interprète le code html !

Ce que j'essaie de faire c'est d'obliger IE à afficher le rendu html du premier coup.

J'ai essayé la plupart des meta-tag comme le content-type mais rien n'y fait.

Précision : je suis sous IE6 et Win XP.

Quelqu'un aurait-il une idée ?

Merci d'avance.
Modérateur
Salut,

Euh... passer sous Linux ! Smiley lol Windows a besoin de l'extention pour savoir ce qui se trouve dans le fichier, pas Linux.
Euh oui mais non, même si j'utilise linux à titre perso, au boulot c'est windows obligé.

Merci quand même.

Par contre il est intéressant de noter que Firefox gère bien ce cas et affiche le rendu html.
Modifié par tatabow (07 Sep 2006 - 14:51)
Je ne comprends déjà pas comment windows arrive à retrouver le type d'un fichier sans extension. Plus précisément, il doit bien stocker son type MIME ou une info équivalente quelque part... mais où ?
Les fichiers word et excel marchent même sans leur extension habituelle .doc et .xls...
Quoi qu'il en soit, c'est plus sûr avec une extension. Qu'est-ce qui 'empêche d'en mettre une ?
C'est comme pour l'encodage. Mettre la balise meta correcte ne veut pas dire que l'entete HTTP sera pareil. Les navigateur se base sur l'entete HTTP
Il faut donc connaitre le comportement du serveur web (et surtout l'header envoyé)
Je ne suis pas sur, mais :
- il test d'abord l'extension
- puis le contenu
- puis le magic
sinon renvoi le type par defaut à savoir text/plain (qui fait afficher le contenu dans l'explorateur)

Apres, si l'header n'est pas encoyer, c'est à voir avec le comportement du navigateur.. Et donc par defaut, IE affiche en text/plain
Modifié par nORKy (08 Sep 2006 - 11:28)
OK, merci pour ces réponses.

QuentinC, mon fichier local n'a pas d'extension car il a été obtenu par "aspiration" d'un site dynamique.
Exemple :
http://monsite.com/index.html -> c:\aspiration\index.html
http://monsite.com/servlet/pagedynamique -> c:\aspiration\servlet\pagedynamique (sans extension)

nORKy, mon problème c'est justement ce que tu décris : mon fichier étant en local, le navigateur ne reçoit aucune entête HTTP et affiche donc du text/plain. Je cherche donc un moyen de forcer le navigateur à utiliser text/html (balise,...)

Merci pour vos idées