我在CMS驱动的站点上有数千个页面,这些页面在公司网络内部呈现不佳,因为IE将它们视为内部网页面,IE的默认设置是在兼容模式下呈现内部网页面。
我想在标题标签后插入 IE Edge 元标记以强制浏览器进入最新版本,但我无法为此编辑每个页面。为了避免编辑单个页面或必须在CMS中重新生成页面,我想我应该能够使用服务器端脚本更新所有页面通用的包含。这可能吗?我认为它需要在服务器端,因为在加载时添加元标记不会强制浏览器模式,但也许我错了。
所以我想要这个:
<head>
...some stuff...
<title>My Title</title>
...some other stuff...
<!--#include virtual="/myinclude.asp"-->
</head>
要变成这样:
<head>
...some stuff...
<title>My Title</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
...some other stuff...
...rendered include...
</head>
有没有办法做到这一点?或者我没有看到的其他解决方法?
事实证明,您可以使用以下内容向标题添加内容:
<% Response.AddHeader "CustomHeader","CustomValue" %>
似乎我把它放在页面上的什么地方并不重要,所以我可以把它放在公共包含中,所有页面都会得到自定义标题。在这种情况下:
<% Response.AddHeader "X-UA-Compatible","IE=Edge,chrome=1" %>
希望我早点知道这件事!这是规格:
http://msdn.microsoft.com/en-us/library/ms524327(v=vs.90).aspx
您可以将 IIS 设置为发送所有提供的页面的标头。MSDN 文章将这些步骤描述为:
在 IIS7 中配置模拟 IE7 HTTP 标头(通过用户界面)
- 打开因特网信息服务 (IIS) 管理器
- 从连接窗格中选择服务器
- 右键单击中心任务窗格中的"HTTP 响应标头",然后选择"打开功能"
- 从操作窗格中选择"添加"
- 添加名称为"X-UA-Compatible"和值"IE=Edge"的自定义标头
他们还有通过命令行进行更改的步骤。
IIS 博客上有一篇文章,其中列出了可能的值以及它们将执行的操作。
模拟 IE8 模式 --> IE=模拟 IE8模拟 IE7 模式 --> IE=模拟 IE7IE5 模式 --> IE=5IE7 模式 --> IE=7.5IE8 模式 --> IE=8边缘模式 --> IE=边缘