先日、ZIP で固められた HTML、CSS、JavaScript 一式をインターネット経由で入手した時のこと。
解凍したファイルを Webサーバーに配備して http プロトコルで参照するとちゃんと IE でレンダリングされるのに、ファイル・システム上の HTML を IE で直接開くと(file プロトコルで参照すると)画面が崩れる—というに事態に見舞われました。
同僚の助けを得ながら試行錯誤の末、分かったのは、NTFS の ZoneId。IE で ZIP ファイルをダウンロードすると、IE が ZIPファイルの Zone.Identifier ストリームを(勝手に)付加する。その ZIP ファイルを Windows の「展開ウィザード」で解凍すると、HTML や CSS 等にも Zone.Identifier ストリームが付加される。そして、IE は、Zone.Identifier ストリームが付加されている CSS を @import 構文でロードしない。結果、画面が崩れる。
ちなみに、Chrome や Firefox は、Zone.Identifier ストリームがあってもロードしてくれます。
NTFS の「ストリーム」や ZoneId のことを良く知らなかったので、いい勉強になりました。Microsoft、コンニャロ。