在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标识,果然从域名访问网站时兼容性视图按钮不见了。

转载于:https://www.cnblogs.com/OpenCoder/archive/2009/12/18/1626864.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值