我在嘗試禁用IE的兼容模式時遇到了大問題。無法使用Apache vhost配置禁用IE兼容模式配置
經過很多人的衝擊之後,我將問題追溯到該站點是否被用作Apache的默認配置或作爲虛擬主機。
我知道這是因爲當我用'localhost'域訪問網站時,一切都很好。只要我通過在虛擬主機中配置的域訪問同一頁面 - 站點將以兼容模式呈現。
任何人都可以請擺脫這個瘋狂的問題?
將該網站作爲默認主機不是一個選項。
- 院長
我在嘗試禁用IE的兼容模式時遇到了大問題。無法使用Apache vhost配置禁用IE兼容模式配置
經過很多人的衝擊之後,我將問題追溯到該站點是否被用作Apache的默認配置或作爲虛擬主機。
我知道這是因爲當我用'localhost'域訪問網站時,一切都很好。只要我通過在虛擬主機中配置的域訪問同一頁面 - 站點將以兼容模式呈現。
任何人都可以請擺脫這個瘋狂的問題?
將該網站作爲默認主機不是一個選項。
啊,哈!
從here(重點煤礦):
大量的業務線,網站是:IE 7今天能。爲了保持兼容性,Internet Explorer 8附帶了基於區域評估的智能默認值。在默認狀態下,公共Internet上的所有站點都以Internet Explorer 8標準模式(兼容性視圖關閉)顯示,並且所有Intranet網站都以Internet Explorer 7標準模式(兼容性視圖開啓)顯示。
...
如果您導航到本地Intranet像http://myPortal和http://sharepoint/sites/mySite網站,Internet Explorer 8中識別自己與「7」,版本矢量的「7」的用戶代理字符串,並顯示網頁在Internet Explorer 7標準模式下觸發標準模式。這種組合允許在Internet Explorer 7中正常工作的網頁在IE8中繼續這樣做。
我沒有評論這個。我確信這有一些很好的現實世界的原因,但我仍然有衝動想要把我的頭放在桌子上。
當網站正在本地服務器上運行時,Internet Explorer將(默認情況下)切換到IE7兼容模式。
可以使用由包括X-UA-Compatible響應頭爲您的網頁上的「內聯網兼容模式IE7」禁用此:
HTTP/1.1 200 OK
X-UA-Compatible: IE=8
您還可以添加一個HTTP響應的equivlent通過在您的文檔的HEAD>
中包含一個meta http-equiv
元素前往您的頁面。例如。:
<!DOCTYPE html>
<html>
<head>
<title>Hello world!</title>
<meta http-equiv="X-UA-Compatible" content="IE=9">
</head>
<body>
</body>
</html>
注意:如果您的網站的標題
| Header | Value |
|------------------|---------|
| X-UA-Compatible | IE=10 |
到您的html文件,你必須添加它足夠高的HEAD
別的東西發生前,在文件模式鎖 - 並且你被鎖定在IE7中。
錯誤示例1
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=8">
<html lang="en">
<head>
meta
元件head
元件
錯例2
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello, world!</title>
<link rel="stylesheet" type="text/css" media="all" href="main-73c2257f2d.css" />
<meta http-equiv="X-UA-Compatible" content="IE=8">
的X-UA-Compatible
元素必須首先出現在內屬於;除了title
和其他meta
元素。
X-UA兼容標頭不區分大小寫;但是,除了標題元素和其他元素之外,它必須出現在網頁頭部(HEAD部分)之前的所有其他元素之前。
錯誤示例3
<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=10">
的條件句鎖定瀏覽器到IE7模式。刪除它們。
正確
<!doctype html>
<head>
<title>Hello, world!</title>
<meta http-equiv="X-UA-Compatible" content="IE=10">
的第一步是使用類似Firebug的工具,看看有什麼響應頭的Apache在兩種情況下發出。 AFAIK,在兼容模式下,Apache將不得不發送'X-UA兼容'頭文件 – 2011-01-14 12:05:59
這兩種情況下的頭文件是相同的。我目前使用的技術是標題中的標記。我也嘗試在Apache配置中設置標題。相同的結果。 – deanoj 2011-01-14 12:14:09