我正在使用优秀的HTML5 Reset模板,网址是html5reset.org,但我的X-UA-Compatible元标记似乎不起作用。这里是我的头部代码:
<!DOCTYPE html>
<!--[if lt IE 7 ]> <html class="ie ieNoHtml5 ie6 no-js" lang="en"> <![endif]-->
<!--[if IE 7 ]> <html class="ie ieNoHtml5 ie7 no-js" lang="en"> <![endif]-->
<!--[if IE 8 ]> <html class="ie ieNoHtml5 ie8 no-js" lang="en"> <![endif]-->
<!--[if IE 9 ]> <html class="ie ie9 no-js" lang="en"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<!-- the "no-js" class is for Modernizr. -->
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>Title of Page</title>
在IE中使用兼容性视图模式的选项显示在URL字段中的“破碎页面”图标中。问题是我的一些客户已将他们的IE9浏览器设置为“始终使用兼容性视图”模式,结果是即使他们正在使用IE9,网站看起来像IE7,并且X-UA-Compatible应该覆盖此设置。现在,如果我删除有趣的头部信息:
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
突然间,它开始正常工作了。
我注意到 html5reset.org 本身似乎显示了损坏的页面图标,因此它也无法工作,但是html5boilerplate.com可以工作,并且似乎使用了相同的方法。
通过web服务器配置将X-UA-Compatible添加到响应头中似乎可以解决问题,但我不想依赖这种方法。
更新:看起来如果检测到浏览器是IE,html5boilerplate.com只是通过HTTP响应头发送X-UA-Compatible。这似乎是正确的方法。