Aller au contenu

Problèmes de @import avec IE


Xavier

Sujets conseillés

Bonjour,

Cela fait un moment que je sèche sur la question. Je ne sais pas s'il est de bon ton de donner l'adresse de son site ici... j'ai une page test, je vous la donne, elle peut être utile : http://smilissimo.free.fr/tests.html

Avec Mozilla, tout passe très bien, pas de problèmes. Par contre avec Internet Explorer (v.6 sp1, je ne sais pas avec d'autres :blush: ), c'est nettement moins bien.

Alors je vais vous expliquer en détail, c'est un peu long mais c'est vraiment compliqué.

Il y a quelques semaines de ça, j'ai remarqué un nombre affolant d'erreurs 404 sur mon site. Quand je dis affolant, c'est qu'en quelques jours ils ont dépassé les chiffres de plusieurs semaines de ma page d'accueil :yoot:

J'ai essayé de trouver d'où pouvait venir le problème. En ajoutant un petit script php à ma page 404, je me suis rendu compte que les 90 % des erreurs venaient de MSIE (Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)) et qu'ils étaient appelés par groupes de 11 depuis une même page :blink:

(Il faut savoir que mon site étant dédié à Mozilla, IE n'y représente pas plus de 5% des visites, d'où ma suspiscion...)

Bien, me dis-je, voilà qui est étrange ! (c'est le moins qu'on puisse dire :lol:).

Je fais donc un petit test en local (avec easyphp), je regarde les logs... et là une surprise m'attend ! J'ai des suites de 11 erreurs 404 du style :

http://127.0.0.1/styles//url("base_all.css") all
http://127.0.0.1/styles//url("base_print.css") print
etc.

Ainsi donc, voilà que je vois que ça correspond exactement à mes 11 feuilles de styles, insérées avec des _AT_import dans 3 feuilles différentes.

Pourtant, il me semblait que Internet Explorer connaisait les _AT_import, vu que c'est justement la technique utilisée pour masquer des feuilles de styles aux vieux Netscape 4.7. Après consultation de diverses sources, il me semble même que IE est censé supporter les syntaxes _AT_import avec un media spécifié.

Mais pourquoi pas ici :?:

J'ai essayé d'enlever les guillemets, les url(), puis les guillemets et les url() en même temps... rien n'y fait :(

J'ai donc créé un petit testcase pour voir. Le nombre de mes feuilles de style a un peu augmenté depuis, mais ça ne change rien au fond du problème.

J'ai créé des fichiers portant le nom de ceux cherchés par IE (par exemple un http://smilissimo.free.fr/styles/url(base_all.css) all ). Plus d'erreurs 404 depuis :D mais fond du problème est toujours là.

Sur la page citée au début, (http://smilissimo.free.fr/tests.html), j'ai ajouté dans un div le nom des feuilles. Par défaut, le bloc est caché.

Dans les feuilles cherchées par IE, j'ai fait réafficher le bloc et colorer la ligne correspondant à la feuille en rouge.

Première surprise : tout n'est pas rouge :blink: Une erreur de codage de ma part n'est pas à exclure... mais j'ai vérifié, ça a pas l'air :unsure:

Il faut savoir que j'insère 5 feuilles de styles avec des <link> :

http://smilissimo.free.fr/styles/base.css

http://smilissimo.free.fr/styles/menuhorizontal.css

http://smilissimo.free.fr/styles/menuvertical.css

http://smilissimo.free.fr/styles/technique.css et

http://smilissimo.free.fr/styles/stryer.css

Chacune sauf la première a un titre. Dans ces feuilles sont appelées les diverses feuilles de styles par ces maintenant fammeux _AT_import, comme vous pourrez le voir.

Je sais que IE ne supporte pas la syntaxe avec plusieurs medias, mais je réglerai ce problème plus tard, là le problème est plus général.

Voilà, je suis désolé d'avoir été si long, j'espère que c'est suffisemment précis pour que quelqu'un ait une réponse à cette question : que faire :?:

Merci d'avance

PS: on a pas le droit à plus de 10 émoticones ? Même dans un long message comme ça ?

Modifié par Xavier
Lien vers le commentaire
Partager sur d’autres sites

Salut ;)

Ne t'inquiète pas, le Hub n'est pas co.... non rien :whistling:

Enfin bref, non, il n'st pas mal vu de donner les URLs ;)

Je peux pas voir ton problème n'ayant pas IE :(

Et la, sans pouvoir tester, je pense que ça va être... sportif de comprendre :D

Mais de toute façon pourquoi tu t'intéresse à IE :whistling: ?

Ses utilisateurs envient très surement toutes les extensions que tu proposes, mais ils ne vont quand même pas les emuler pour Internet Explhorreur (c'est ma dernière trouvaille celui la :P ) :D

A+, bonne chance ;)

Lien vers le commentaire
Partager sur d’autres sites

C'est particulier ton problème...

on vit quelque chose de semblable... tous les utilisateurs d'un système sont capable de voir les JS et les CSS liés (link), sauf ceux d'une région, qui n'on plus accès aux JS ni aux CSS... peut-être est-ce un problème semblable...

Tu indiques:

(...) c'est qu'en quelques jours ils ont dépassé les chiffres de plusieurs semaines de ma page d'accueil

Particulier... serait-ce dû à une mise à jour de IE par Microsoft? on se pose la question ici si ce n'est pas un «bug fix» de MS qui, une fois installé, cause des problèmes pour certains utilisateurs et ne permet pas de trouver des fichiers liés...

Crois-tu que le problème était présent avant ces quelques jours?

Lien vers le commentaire
Partager sur d’autres sites

C'est possible... j'ai toujours eu des erreurs 404, mais c'est vrai que d'un coup ça s'est remarqué. Restons dans le Bizarre : hier j'avais moins de 10 erreurs 404, et aujourd'hui Opera 7.51 m'en fait plus de 300 (10 fois moins pour tous les autres) ! Vraiment je ne comprend pas.

Je vais essayer Opera 7.51 en local voir s'il le fait pour certains liens en particulier.

Je te remercie de ton aide, au moins je suis pas le seul à avoir des choses étranges <_<

Lien vers le commentaire
Partager sur d’autres sites

Guest CraJK
Ses utilisateurs envient très surement toutes les extensions que tu proposes, mais ils ne vont quand même pas les emuler pour Internet Explhorreur (c'est ma dernière trouvaille celui la tongue.gif )

Bien vu Loupilo, je la ressortirais si tu me le permet :up::hypocrite:

Lien vers le commentaire
Partager sur d’autres sites

Bien vu Loupilo, je la ressortirais si tu me le permet :up:  :hypocrite:

Tu as mon autorisation, et ce avec grand plaisir :D;)

Xavier, faut avouer que c'est bizarre ton histoire ;(

Es-tu obligé d'utiliser les @import à l'intérieur de tes Css ?

Si il n'y a pas un énorme intêret, ça vaut surement mieux que tu regroupes tout dans la même Css :cool2: (marrant ce smiley :P ).

++ ;)

Lien vers le commentaire
Partager sur d’autres sites

C'est surtout fort pratique, il y a des bouts de code qui sont réutilisés par plusieurs thèmes... en même temps c'est vrai que ça rend le code moins lisible :huh:

En fait ça me permet surtout de définir précisément les médias pour lesquels chaque thème s'applique (en fait à la base c'est comme ça que c'est parti, je ne savais pas que ça allait cacher mes styles à IE... et en tous cas pas le faire bugguer comme ça :( ).

Mais je ne sais pas s'ils sont définis objectivement et vraiment correctement <_<

Accessoirement pour le style "stryer", ça me permet de le cacher efficacement à IE qui ne peut pas afficher comme il faut tous ces blocs fixes.

Mais bon, je vais peut-être effectivement réfléchir à faire ça différemment...

Lien vers le commentaire
Partager sur d’autres sites

Quelle est la technologie serveur utilisée??

Nous on est avec Apache et Oracle (c'est des applications). On est passé de 9 à 10G et c'est là qu'ont commencé les problèmes avec certains utilisateurs...

Lien vers le commentaire
Partager sur d’autres sites

Je suis chez free, donc sur Apache, mais quelle version, alors là :whistling:

Ne serait-ce pas Apache1.3.29 :whistling:

Euh non, je n'ai pas de boule de cristal...

j'ai simplement utilisé cet outil du Hub :P

Lien vers le commentaire
Partager sur d’autres sites

Ne serait-ce pas Apache1.3.29  :whistling:

Euh non, je n'ai pas de boule de cristal...

j'ai simplement utilisé cet outil du Hub  :P

C'est ça Monique ;)

Moi non plus n'ai pas utilisé de boule de cristal, mais l'outil permettant de voir les entêtes HTTP inclus dans la barre Web Developper 0.8...

Xavier, j'anticipe ta question, oui j'ai la version française, mais j'arrive pas à compiler le .xpi...

Donc z'êtes pas près de la voir... Et il n'y a pas tous les "bonus" fournis dans la version 0.7 :(

Mais sinon, j'avoue qu'elle est pas mal, surtout en français :D;)

Pour revenir à ton problème, ben pour l'instant, essaie d'enlever les @import, c'est la seule solution que je voie... Quoique comme je le disais plus haut, les problèmes sous Opera et Internet Explorer ne sont pas d'une importance capitale, le public visé par les extensions étant evidemment celui de Mozilla.

A+

Loupilo

Lien vers le commentaire
Partager sur d’autres sites

Peut-être que ça ne vous concernera pas du tout, mais on a trouvé une piste pour le problème chez nous.

Le site est effectivement publié par Apache, or, il utilise un cache où tous les fichiers sont compressés GZIP... Normalement, ça fonctionne pour tout le monde, mais étant donné que certains passent par un proxy barrant les fichiers zippés, il semblerait que ça pourrait empêcher le passage des CSS et des images.

[...]

Pourquoi Internet est si compliqué?

(en passant, Oh joie! je viens d'installer AniDisable 0.2 pour Firefox, et enfin les p'tits maudits émoticons ont arrêté de bouger!!)

Modifié par gou
Lien vers le commentaire
Partager sur d’autres sites

Heu.... ça n'a peut-être rien de bien compliqué, en fait :whistling:

Xavier, dans http://smilissimo.free.fr/styles/menuvertical.css, tu utilises la règle _AT_import sous la forme:

@import url(menuvertical_plan.css) screen,tv,projection;

Or IE5, IE5.5 et IE6 Win ne reconnaît pas la règle _AT_import dans une feuille de style lorsque le type de media est précisé. Voir par exemple http://w3development.de/css/hide_css_from_browsers/import/

Il ne reconnaît que:

@import url(menuvertical_plan.css);

Il devrait normalement ignorer les règles qu'il ne supporte pas... Mais là, apparemment, il tente de traiter l'url et aboutit à un infâme bouillon qui provoque tes erreurs 404.

Lien vers le commentaire
Partager sur d’autres sites

Hum... Je n'utilise pas, personnellement, les _AT_import dans les CSS (notamment pour des raisons de support à géométrie variable comme ici), mais seulement directement dans un <style> XHTML. ceci pour dire que je ne parle pas d'expérience dans ce cas.

Mais lorsque je regarde dans IE5 Win, IE5.5Win et IE6Win le test http://www.w3development.de/css/hide_css_f...rowsers/import/ auquel fait référence http://www.phoenity.com/newtedge/hide_css_ie/, et plus particulièrement :

url() with media

_AT_import url(../hide1b.css) screen;

This sentence should be blue.

Hides CSS from:

Netscape 4.x

Win IE 6 and below

... eh bien... "This sentence is not blue in IE" :P

Ce que confirme le test rapide effectué sur ta feuille de style ce matin.

Moralité 1: quand quelqu'un affirme quelque-chose en se référant à une page de test, toujours tester la page de test. j'aurais été le premier à tomber dans le panneau, cela dit. Non mais, à qui se fier, je vous le demande :P !!!

Moralité 2: la page de test ne couvre pas forcément toutes les possibilités de support. Il faudrait s'assurer qu'il n'y a pas un _AT_import url(...) quelque-chose bien précis qui ne fonctionnerait pas dans IE.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...