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

Posted

技术标签:

【中文标题】IE - 本地和远程部署的系统之间的行为差​​异【英文标题】:IE - differences in behaviour between system deployed locally and remotely 【发布时间】:2011-07-30 20:03:35 【问题描述】:

我在 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

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

http://host2/system/page

为什么第二种情况下没有显示红星?当我使用 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>

缓存不是问题

【问题讨论】:

您会发布一个您尝试呈现的完整 XHTML/HTML 示例吗?谢谢! 另外,请仔细检查您的 IE 缓存中是否有来自主机的文件。 这里没有与 C# 相关的内容...重新标记 ASP.NET,因为它可能是您用来构建 Web 应用程序的工具。 【参考方案1】:

content property 在 IE8 中有效,但在 IE7 中无效。

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

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

发生这种情况的原因有多种。

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

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

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

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

如果不是,请查看链接中的列表,看看是哪个原因造成的。

【讨论】:

其实我用的是IE9 beta。你有权利。它在本地以 IE9 模式呈现,但在远程以 IE7 兼容模式呈现。那个标签有帮助。顺便提一句。该标签是一个好的解决方案,还是有“更正确”的方法?谢谢。 “正确”的方法是遵循该列表,并准确找出它在 IE7 模式下远程呈现的原因。我可以通过指向您网站的链接来做到这一点(如果它是非本地 [对您的计算机] 原因)。但是,元标记在所有情况下都应该可以正常工作。另外一点,IE9 已经过测试版了。你应该更新:windows.microsoft.com/en-GB/internet-explorer/products/ie/home【参考方案2】:

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

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

在本地和远程检查兼容模式并确保它们相同。如果没有,在远程机器上查看时设置为一样。

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

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

我会确保一切都已部署,清空 IE 的缓存并重试。

【讨论】:

感谢您的回复。兼容模式是问题的根源。

以上是关于IE - 本地和远程部署的系统之间的行为差​​异的主要内容,如果未能解决你的问题,请参考以下文章

守护进程和正常进程之间的行为差​​异是啥?

02—NFS服务器的原理和部署

02—NFS服务器的原理和部署

Rsync服务简介部署使用及原理详解

UIView.subviews 和 [NSView subviews] 之间的行为差​​异

通过 SSH 在远程和本地系统之间传输文件的 4 种方法