Dear All.
My turn to be helpful.
The situation: I spent 12 hours yesterday wrestling (and finally
achieving victory over) the following problem. It turns out that the
final fix took less than 60 seconds. The problem appears to be
caused by something TEXTMATE does automatically (I am not criticising
TEXTMATE. I love it and nothing is fault free). The fix is simple,
the problem is stupid. Read on, in case you have the same problem
some time (you may well).
The problem:
I built a very, very simple website (I am not allowed to post you the
code). It displays a page with some images on. You click on images
to make selections. The selections are noted in the database and the
final act is where the votes to date are displayed. All very simple,
all very beautiful. Worked perfectly in safari and firefox.
However, no images would display in MSIE 6. Which was a problem
because that is what the client is using.
First theory:
I observed that IE 6 was blocking something and thought it might be
to do with cookies. So, I tested it on IE 5.0 for mac. Sure enough,
no images. Reduced the security levels and the images appeared.
Increased the security level again - but could not stop the images
from appearing. Even though they were appearing now on my mac - they
still would not do so on the client’s computer, even after clearing
out cookies, clearing the cache etc. This theory was rubbish, I did
not know that yet.
Second theory:
I thought it might be some firewall they had. So I got another
client (outside their org) to test the site. Same problem.
Third theory
Read some MS docs that said that for cookies to work in IE 6 you had
to have a privacy policy. Seemed odd. Some people on the mailing
list wrote to me telling me that that was probably untrue. In the
interim, I investigated this route, hence my asking about privacy
policies. This was not the issue.
Fourth theory
Decided I could get round the whole problem by not sending any
cookies. Took out the code where I used session variables (thinking
that would do it). But that did not stop a cookie getting deposited.
In the end I found out that if you put " session :off " in the
application controller file you can stop cookies being sent. That
did not solve the problem.
Fifth and final theory
Upon further investigation it was clear that this problem was
isolated to this site. I have three sites running on my host machine
where almost everything is identical. Other than MSIE ruining my
layout on one of those two sites, the images did display. The
difference had to be in the code somewhere. I looked for a long time
and then found it.
THE DIFFERENCE WAS PRODUCED BECAUSE IN ONE CASE I HAD CREATED A NEW
PAGE IN TEXTMATE AND SELECTED THE XHMTL 1.0 TRANSITIONAL.
I still don’t understand what caused the problem exactly but by
commenting out a few lines of code in the automatically produced
header, all started working properly. The lines I commented out were
these:
<meta name="ROBOTS" content="ALL" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="MSSmartTagsPreventParsing" content="true" />
<meta name="Copyright" content="(c) 2005 Copyright content:
Copyright design: Bruce" />
<meta name="Keywords" content="__KEYWORDS__" />
<meta name="Description" content="__DESCRIPTION__" />
<link href="/css/master.css" rel="stylesheet" type="text/css"
media=“all” />
<!-- import the DOM logic from external javascript files -->
<script type="text/javascript" src="/js/basic.js"></script>
<!-- KLUDGE:: Win IE 5 -->
<!-- corrects the unsightly Flash of Unstyled Content. See http://
Blue Robot | Messaging, Chat Bots & Social Eperiences for more info →
<base href="" />
For sure the reference to js/basic.js was an issue, I don’t know what
else.
Summary
This may not even be textmate’s fault. Perhaps just an unfortunate
interaction between their template code (which works fine in the two
acid2 compliant browsers) and MS IE 6.0
Perhaps you’d have found the problem sooner than me but to avoid
undue pain, I would not select XHTML 1.0 transitional as your
template if you are going to work with IE. And if you find one day
that your images don’t display, maybe this is the cause.
To everyone who tried to help - thank you. And to the fine gentleman
who described MS IE 6 as a POS and thus the reason could be the phase
of the moon or the football scores, thank you. That was the only
laugh I had in 12 hours.
I hope this helps. And if someone can tell me what I should do re
informing the textmate people then I’d be pleased to do that.