X-UA兼容在IE 9中不适用于Intranet站点

时间:2014-12-19 17:43:59

标签: asp.net-mvc asp.net-mvc-4 internet-explorer compatibility x-ua-compatible

我们正在使用asp.net mvc 5创建一个内部网站点,但在IE 9中存在一些兼容性设置问题。该站点需要在没有兼容性视图的情况下显示。
我们做了一些研究,并做了这些:
1.在layout.cshtml和login.cshtml中添加meta

<!DOCTYPE html>
<html>
<head>
    <title>@System.Web.Configuration.WebConfigurationManager.AppSettings["WebsiteTitle"]</title>
    <meta http-equiv='X-UA-Compatible' content='IE=Edge'>
    <meta http-equiv="PRAGMA" content="NO-CACHE">
    ....

@{Layout = null;}
@model ZdtcWebsite.Models.LoginModel
<!DOCTYPE html>
     <html>
     <head>
     <title>@System.Web.Configuration.WebConfigurationManager.AppSettings["WebsiteTitle"]</title>
     <meta http-equiv='X-UA-Compatible' content='IE=Edge'>
     <meta http-equiv="PRAGMA" content="NO-CACHE">
     <meta charset="utf-8" />
     ....

2。我们在web.config中添加customheader

<system.webServer>
<httpProtocol> 
        <customHeaders> 
          <clear />
          <add name="X-UA-Compatible" value="IE=Edge" /> 
        </customHeaders> 
     </httpProtocol> 
<validation validateIntegratedModeConfiguration="false" />
</system.webServer> 

这两项仍然无效。我们的网站在打开时仍会处于兼容模式。 我注意到的一件事是,如果我们在IE9中打开开发人员工具并打开页面,那么X-UA-Compatible标签就可以正常工作,但如果关闭开发人员工具则不行。 我们在IE 11上测试它,它工作正常。有人可以建议这里发生了什么吗?

2 个答案:

答案 0 :(得分:2)

原来是因为我们的脚本中有几个“console.log”。当我们删除它们时,网站工作正常。如果显示开发人员工具,这可能也是该网站工作正常的原因。我不明白为什么console.log和兼容性视图之间有任何联系,但我想有

答案 1 :(得分:-1)

兼容模式的浏览器设置会覆盖文档的首选项(通过元标记)或服务器的首选项(通过响应标头)。默认的IE兼容性视图设置是为Intranet站点使用兼容模式。转到工具&gt; IE中的兼容性视图设置。在那里,您会看到一个标有“在兼容性视图中显示Intranet站点”的复选框。如果已选中,请取消选中它。如果由于禁用而无法取消选中,则必须与组织的基础架构团队进行沟通。为此设置了GP(组策略)。

您可能需要与您组织的基础架构团队进行对话。即使你可以自己取消选中,除非你想让每个用户都在你的组织中,这样他们也可以在他们的IE中单独取消选中它,通过GP取消选中将会更加容易和标准化。