Jedna moja kamarátka riešila tento týždeň nejakú úlohu do školy (ekonomického smeru – dodnes nechápem, prečo sa niektoré veci učia tak, ako sa učia.. :-)). Jednalo sa o to, že dostali k dispozíii HTML súbor, ktorý referencoval na súbor style.css. Ich úlohou bolo napísať CSS štýly v tomto style.css súbore a čo najlepšie odprezentovať znalosť CSS a naformátovať túto stránku. Podmienky boli, že CSS musí byť valídny a výsledok sa musí, čo najviac podobať aspoň v piatich prehliadačoch (priznám sa, že ja viac hádam ani nepoznám :-D).
Keď už mala všetko hotové a výsledok testovala vo Firefoxe, prešla na IE7… a čuduj sa svete, pri otvorení stránky z lokálneho disku sa jej nezobrazovali na tejto HTML stránke obrázky. Po uploadnutí na web server všetko samozrejme funguje… Ak som HTML otvoril vo Visual Studio 2008, obrázok sa v Design móde zobrazil.
Tak som sa pozrel, čo je vo veci… v HTML súbore je okrem iného aj jednoduchý tag IMG:
<img src=”img/obrazok.jpg” />
V podadresári img samozrejme tento obrázok bol. Problém je, že IE7 ho nezobrazil. Firefox – funguje, Opera – funguje, Chrome – funguje, Safari – funguje, IE7 – nefunguje, IE8b2 – nefunguje.
Menil som cestu obrázku – skúsil som relatívnu, absolútnu, s file:/// na začiatku, bez neho…
Keďže mi to nedalo, tak som skúmal, skúmal, skúmal, čo môže byť vo veci… a zistil som, že to nie je chyba, ale vlastnosť Internet Exploreru od verzie 7. Kvôli bezpečnosti je zakázané, aby webové stránky pochádzajúce z Internet Zone pristupovali k lokálnym obrázkom, objektom a skriptom z lokálneho disku.
(AKTUALIZÁCIA: Nechápal som prečo Internet Zone, keď mám ten súbor lokálne. Vysvetlenie je na konci – škoda, že ma to nenapadlo skôr)
Znova ma to stálo 2 hodiny času :-)…
Chcete viac info, priamo z Microsoftu? Páči sa… Security and Compatibility in Internet Explorer 7.
AKTUALIZÁCIA:
Stále mi to nedalo a skúmal som aj po napísaní tohto príspevku. Samozrejme, že to nešlo, pretože HTML súbor pochádzal z Internet Zone (lebo sme ho stiahli z webu učiteľa :-)) a nebol vytvorený lokálne. Pomoc je jednoduchá – vo vlastnostiach súboru stačí tento súbor odblokovať, kedy nastavíme dôveryhodnosť tohto súboru a všetko je zase v poriadku.
V podstate odstránime Zone.Identity informáciu z daného súboru. Na toto odstránenie z viacerých súborov je možné využiť utilitu Steams.exe \\live.sysinternals.com\tools\streams.exe. Stačí spustiť streams –s –d *.pripona, kde –s znamená prechádzanie podadresárov a –d znamená zmazanie týchto Alternate Data Steams zo súborov.