IE - 本地和远程部署的系统之间的行为差​​异

时间:2011-04-06 13:20:10

标签: asp.net css internet-explorer

我在IE中遇到了有线问题。当我浏览我在本地部署的asp.net mvc应用程序时,一切都按预期工作。当我将系统部署在不同的主机上时,会出现一些烦人的差异。

在这两种情况下,我都使用与我的主计算机本地安装的IE相同的实例。

假设我在css文件中定义了类:

.field-required:before
{
    color: red;
    content: "*";
    font-weight: bold;
}

我还有一个简单的标签,它使用这个类:

<label class="field-required" for="UserName"> Username </label>

在本地部署系统时,此类代码以这种方式呈现:

http://localhost/system/page

enter image description here

部署在远程服务器(名为host2)上的相同代码,从我在主计算机上本地安装的IE浏览器的第二个选项卡访问,呈现如下:

http://host2/system/page

enter image description here

为什么第二种情况下没有显示红星?当我使用firefox时,一切都按预期工作。在访问IE中的远程页面时是否启用了任何安全策略或某些功能,这会禁用某些功能?昨天我遇到了JSON的问题,当我浏览远程部署的系统时,这个问题无法识别。当本地部署同一系统时,一切都有效。但是,我仍在使用相同的IE实例。由于这是相同的浏览器,发生了什么?

更新

这是整个来源

<!DOCTYPE html>
<html>
<head>    
    <style>
        .field-required:before
        {
            color: red;
            content: "*";
            font-weight: bold;
        }
    </style>
</head>

<body>
    <div><label class="field-required" for="UserName">Username</label></div>
    <div><input id="UserName" name="UserName" type="text" value="" /></div>
</body>
</html>

缓存不是问题

2 个答案:

答案 0 :(得分:2)

content property在IE8中有效,但在IE7中不起作用。

因此,我确信您的页面在本地以IE8模式呈现,但在您的其他服务器上,它将以IE7兼容模式呈现。

您可以从两个位置打开页面,按F12,然后查看“文档模式”设置以验证这一点。

这种情况可能有多种原因。

请参阅:http://hsivonen.iki.fi/doctype/#ie8modes

最可能的原因是您按下IE中的“IE7兼容模式”按钮。

您可以通过添加此元标记来“快速解决”此问题:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

如果没有,请在链接中查看该列表,看看原因是什么原因。

答案 1 :(得分:1)

假设一切都在部署,并且这是IE 8,那么我的猜测是它可能是兼容模式。由于同样的问题,我们的网站经常“失败”QA - 无论我多少次告诉QA团队检查compat模式!

默认情况下,IE8以兼容模式显示Intranet站点,这意味着在将其部署到非Intranet位置时可能会出现差异。同样地,它可能是兼容模式导致问题的手动覆盖(即“我的机器”,但不是这个,或者确实'不是我的机器',而是其他所有东西)。

在本地和远程检查compat模式并确保它们是相同的。如果没有,请在远程计算机上查看时将其设置为相同。

然后看看配置IE默认情况下不使用compat模式,如果那是它正在做的事情。

如果不是 - 那么它可能是缓存或者没有部署的东西。

我确保所有内容都已部署,清空IE的缓存并再次尝试。