这是this问题的延续。
我有一个ASP.NET应用程序,当在DEBUG中的IE8中查看时显示不同的部分,显示已发布的TEST服务器位置。
当我在Debug中查看页面时(通过VS 2010),我看到了:
但是,当我发布到服务器并直接查看它时,它看起来像这样:
标题框只有文本背景颜色为黑色而不是整个部分。
这是CSS:
.imageBox
{
position: relative;
float: left;
border-style: solid;
border-width: 1px;
text-align: center;
}
.imageBoxTitle
{
width: 100%;
background-color: #333333;
padding: 5px;
}
.imageBoxTitleLbl
{
font-family: Verdana;
font-weight: bold;
font-size: small;
color: White;
}
这是生成的HTML
<div class="imageBox">
<div class="imageBoxTitle">
<span id="MainContent_ImagesPanel_ImageHolder1_ImageBoxTitleLabel" class="imageBoxTitleLbl">ITEM OVERVIEW</span>
</div>
<div class="imagePlaceHolder">
<p class=".centeredImage"><a id="MainContent_ImagesPanel_ImageHolder1_ImageHyperLink" href="UserImages/nu5t3hhs.jpg" target="_blank"><img src="UserImages/nu5t3hhs.jpg" height="200" width="200" /></a></p>
<span id="MainContent_ImagesPanel_ImageHolder1_CustomValidator1" style="color:Red;visibility:hidden;">*</span>
</div>
<div class="imageAction">
</div>
</div>
所以我认为这可能是某种缓存问题。但是,如果我对CSS稍作修改(例如更改背景颜色),则会选择它并显示它。此外,我已经为css文件的查询字符串添加了动态生成的GUID,因此它们永远不会被缓存。 Fiddler确认他们也没有缓存。
IE通过Visual Studio Debug查看直接从服务器访问页面时,IE似乎呈现不同的HTML / CSS。
什么事情可能会导致这种行为?
更新:当我在已发布的服务器上查看Chrome或Firefox中的页面时,它会正确显示。我已经清除了IE缓存(ctrl-f5),删除了服务器上的.css并重新上载等等。
答案 0 :(得分:12)
当IE在 localhost 上呈现时,它将使用标准兼容模式。
但是,当它在 Intranet 上呈现时,它将使用兼容模式。
不要问我为什么会这样做,这只是为了让我们的开发人员生活更加精彩的MS事物之一。
只需将其添加到标题中即可强制IE进入标准兼容模式:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
享受:)
答案 1 :(得分:3)
归功于JungleFreak的完整answer
IE8以不同的模式运行,具体取决于它是否访问在localhost上运行的站点与另一台服务器。我知道这很奇怪。我之前也遇到过这个问题。使用开发人员工具(F12)并检查浏览器运行的模式(Quirks,IE7 Standard,IE8 Standard,IE8兼容性)。