I have this problem that I can not find a solution for ...
I have a page that is perfectly debugged using native IE7 (not emulated from IE9 / IE8) at boot, but returns to the IE6 standard in subsequent requests that will be served from the browser cache. IE7 knows how to handle several CSS classes, such as "div.class1.class2", while in IE6 standard mode it doesn't - that's why my page breaks on every visit, but the first one.
Here's how to reproduce it:
- open IE7 (real, IE7 Emulated Mode from IE9 / IE8 will not work! )
- go to hhttp: //beta.upcload.com/widget/popup? garmentId = workaholicfashion-5276777 & sid =
- on the first visit, everything should look beautiful and dandy (for example, a blue button, for example, in Chrome or FF).
- reload the page, now some CSS rules break because the browser returns to IE6 standard (NOT Quirks mode, I checked it! document.compatMode is still "CSS1Compat")
- clear the cache and reload, everything looks good again.
- repeat as often as you like
So, it seems that when all files are served from Amazon servers, IE7 makes them just fine, including CSS rules that contain several classes. (for example, "div.class1.class2"). When you try to reload the same page using the same code, it somehow switches to IE6 Standard Mode (not Quirks mode), which does not understand chained CSS classes and breaks down several designs, such as buttons. I tried to add several different Doctype / Meta headers, but all of them have no meaning, the XHTML Strict page is currently valid and has an IE = edge header compatible with X-UA, but still cannot display it correctly when loading from cache. The only difference in the headers I could make out was the lack of a Content-Type header for Not Modified requests, but that shouldn't be a problem, right?
Oh, and above all, when I open this same page with IE7 on my local development server, it looks great even after a reboot!: /
Update
Ok, so I was finally able to play it on the development server. The only thing that was different was the "max-age" header, as a result of which the browser did not cache anything locally. When I increased the caching time, IE7 started caching these files, which also caused a break in the design as soon as they were loaded from the cache. Thus, the problem should be related to the fact that the files are being downloaded from the cache, and not from the server.
Update 2
I narrowed it down to a CSS file. It seems that IE7 either displays it in IE6 mode when it comes from the cache (i.e. there is no Content-Type header), and in IE7 mode when it boots from the server. (Content-Type: text / css) Does anyone have an idea why this is so? Perhaps some wrong CSS rules? As a workaround, I now add a random parameter to the stylesheet to prevent caching, which prevents IE7 from switching to IE6 mode, but even after removing all errors and warnings from the stylesheet, the problem remains.