2011-04-06 49 views
3

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

在这两种情况下,我使用的是本地安装在主计算机上的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

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

http://host2/system/page

enter image description here

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

UPDATE

这是整个源

<!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> 

缓存是没有问题的

+0

你会发布你想要呈现的完整XHTML/HTML样本吗?谢谢! – 2011-04-06 13:26:35

+0

另外,请从主机重新检查您的IE缓存中的文件。 – Horus 2011-04-06 13:38:34

+0

这里没有C#相关内容......因为这可能是您用来构建您的Web应用程序的东西,因此您需要重新绑定ASP.NET。 – BoltClock 2011-04-06 13:55:18

回答

2

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

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

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

这可能会发生各种原因。

参见:http://hsivonen.iki.fi/doctype/#ie8modes

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

你可进行“速战速决”的问题,加入此meta标签:

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

如果没有,往下看的链接列表,看看哪些原因是原因。

+0

其实我正在使用IE9测试版。你有权利。在本地,它以IE9模式呈现,但在IE7兼容模式下呈现远程。该标签有所帮助。 BTW。这个标签是一个很好的解决方案,还是有“更正确”的方式?谢谢。 – jwaliszko 2011-04-06 14:19:30

+0

“正确的”方法是遵循该列表,并且明确地指出它为什么远程呈现在IE7模式中。我可以通过链接到您的网站来做到这一点(如果它是一个非本地的[对您的计算机]原因)。但是,meta标签在任何情况下都可以正常工作。在一个不相关的说明中,IE9没有测试版;你应该更新:http://windows.microsoft.com/en-GB/internet-explorer/products/ie/home – thirtydot 2011-04-06 14:29:10

1

假设一切都被部署,并认为这是IE 8,然后我的猜测是它可能是兼容模式。我们的网站通常因为同样的问题而“失败”,因此无论我多少次告诉QA团队检查共享模式!

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

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

然后看看配置IE不默认使用compat模式,如果这就是它一直在做的事情。

如果不是 - 那么它可能是缓存或未被部署的东西。

我会确保一切都在部署,清空IE的缓存并再次尝试。

+0

感谢您的反应。兼容模式是问题的根源。 – jwaliszko 2011-04-06 14:20:27

相关问题