在IIS上解决IE8兼容性视图问题
Any users accessing your site using the Internet Explorer 8 (IE8) browser ( currently in Beta ) will typically not get a very good rendering experience if your site was designed for Internet Explorer 7 (IE7) because of new standards that IE8 is supporting around HTML and CSS formats. There are two ways to resolve this.
1) The longer term option is to re-write your web application to render IE8 correctly - However this would not be my first choice.
2) The best ( to choose first off ) is to instruct any IE8 browsers to browse your site in IE7 emulation mode so that the current rendering is maintained. How do you do this? Simple
On a Per-site basis, site owners and administrators can include the following custom HTTP header to force Internet Explorer 8 to render Web pages like Internet Explorer 7:
X-UA-Compatible: IE=EmulateIE7
To add a custom HTTP response header at the Web site level in Internet Information Services 7 on a Windows Server 2008-based computer, follow these steps:
- Click Start, click Administrative Tools, and then click Internet Information Services (IIS) Manager.
- Under Connections, double-click the server that you want, and then double-click Sites.
- Click the Web site where you want to add the custom HTTP response header.
- Under Web site name Home, double-click HTTP Response Headers in the IIS section.
Note In this step, Web site name is the name of the Web site. - Under Actions, click Add.
- In the Name box, type X-UA-Compatible.
- In the Value box, type IE=EmulateIE7.
- Click OK.
You can also modify the IIS7 configuration file with the following details ( or you can check the config after the changes made above )
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=EmulateIE7" />
</customHeaders>
</httpProtocol>
</system.webServer>
To add a custom HTTP response header at the Web site level in Internet Information Services 6 and earlier versions, follow these steps:
- Click Start, click Run, type inetmgr.exe, and then click OK.
- Expand the server that you want, and then expand Web Sites.
- Right-click the Web site that you want, and then click Properties.
- Under Custom HTTP headers, click Add.
- In the Custom header name box, type X-UA-Compatible.
- In the Custom header value box, type IE=EmulateIE7.
- Click OK two times.
Per-page basis
Site owners and administrators can include the following special HTML tag after the <Head> tag on the page:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
The following example shows use of this Internet Explorer 7 compatibility mode tag on a per-page basis:
<html> <head> <!-- Use IE7 mode --> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <title>My Web Page</title> </head> <body> <p>Content goes here.</p> </body> </html>
最后我说一个需要注意的问题:建议在网站每个网页上加上DTD标识表示该网页支持XHTML规范:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
因为在路由器上使用内网服务器地址转换服务后(将内网服务器IP和端口映射为路由器的外网IP和端口,供外网使用者通过路由器IP访问内网服务器),
我发现没有用DTD标识的页面不管是在IIS上加X-UA-Compatible IE=EmulateIE7 HTTP头,还是在页面上加<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 都不起作用,
IE上始终有兼容性视图按钮,但是我用内网访问服务器就没有,最后发现有兼容性视图按钮的情况是使用公司网站域名来访问网站,言下之意就是通过外网来访问公司服务器经过了路由器进行了地址转换,
最后我将所有页面都加上了DTD标识,果然从域名访问网站时兼容性视图按钮不见了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架