2013. 10. 15. 10:20

X-UA-Compatible

마크업에서 호환성 모드 조정

X-UA-Compatible 을 통해 브라우저의 호환성 모드를 조정할 수 있습니다만

<!DOCTYPE html> 
<html> 
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  • IE=edge 는 설치된 IE 중 가장 최신 버전을 렌더링에 사용하라
  • chrome=1 는 크롬이 설치되어있다면 IE 에서도 크롬 렌더링을 사용하라

안타깝게도 <!doctype html> HTML5 DTD 선언시에는 메타태그에 X-UA-Compatible 을 사용하면 w3c validator 에서 HTML5 DTD 는 X-UA-Compatible 속성이 없다는 오류를 냅니다.


그냥 무시하고 사용할 수도 있지만 'ㅅ'; 
더 좋은 방법으로 서버단에서 X-UA-Compatible 값을 응답 헤더에 포함할 수 있습니다.

서버단에서 설정

Apache 에서 설정

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
  </IfModule>
</IfModule>
<IfModule mod_headers.c>
  Header append Vary User-Agent
</IfModule>

Nginx 설정

server {
  #...
  add_header X-UA-Compatible "IE=Edge,chrome=1";
}

IIS 7.0이상 설정

<configuration>
  <system.webServer>
     <httpProtocol>
        <customHeaders>
           <add name="X-UA-Compatible" value="IE=edge,chrome=1" />
        </customHeaders>
     </httpProtocol>
  </system.webServer>
</configuration>

서버단에서 설정을 하게 되면 메타태그로 X-UA-compatible 을 넣지 않아도 됩니다.