2009-09-16 41 views
0

這對我來說太奇怪了......我有IIS 5在XP上運行,它爲我們的局域網託管一個小的ASP.Net應用程序,我們可以通過使用計算機名稱,虛擬目錄和頁面名稱(http://matt/smallapp/customers.aspx)來訪問它,但你也可以從互聯網上打這個IIS服務器和頁面,因爲我有一個公共IP,我的防火牆路由到「Matt」計算機(如http://213.202.3.88/smallapp/customers.aspx [只是一個化妝IP])。別擔心,我有Windows域身份驗證來保護匿名用戶的應用程序。當內聯網與互聯網聯繫時,ASPX頁面的呈現方式有所不同?

因此,所有上述部分工作正常。但奇怪的是,當你從內聯網訪問頁面時,頁面上的div邊框變得更厚,而互聯網(我正在使用IE8)以及一些div佈局(拉伸等)行爲不同。爲什麼它會在同一個瀏覽器中根據是從局域網還是互聯網到達而呈現不同?它不會在FireFox中執行此操作。所以它必須只是一個IE8的東西。

div的所有CSS在HTML頁面都是正確的,所以我不認爲它是CSS文件的緩存問題。

注意的邊界如何在這兩個圖像的不同:

互聯網:http://twitpic.com/hxx91

蘭:http://twitpic.com/hxxtv

+0

的META開關,就可以發佈您的代碼? – Bhaskar 2009-09-16 16:20:50

+0

現在不需要,因爲baretta正好擊中了頭部。不過謝謝您的閱讀。 – MattSlay 2009-09-16 18:34:47

回答

3

這是最肯定是因爲位於內部網絡中的網站在quirks mode默認情況下,通過IE8渲染,而位於Internet上的網頁來確定基於文檔類型渲染模式。 這意味着,當您通過Internet瀏覽您的頁面時,該文檔的文檔類型聲明規定了呈現模式,而如果您在Intranet上瀏覽,則IE8使用IE7呈現引擎。

渲染模式可以明確的覆蓋,用戶更改IE的兼容性設置,或者通過總是強制IE8使用IE8的渲染引擎,加入meta標籤頁面:

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 
+0

哇!完善!你是一個非常聰明的流氓。當我發佈這個問題時,我對自己說:「沒有人會花時間閱讀所有這些細節,更不知道答案,他們可能會把我寫成一個瘋狂的不知道自己在做什麼的人。」非常感謝。 – MattSlay 2009-09-16 18:33:18

0

你可以還要更改IE的註冊表設置,這將導致IE以與Internet上相同的方式呈現Intranet頁面。

0

BIG謝謝你們。當我使用Asp.Net開發服務器時,我無法弄清楚爲什麼我的網站顯示正常,但是當我使用IIS 6在我們的Intranet上測試它時,某些頁面無法正確顯示。如果這有助於其他人,我將IIS中我的站點的IE兼容模式設置爲「IE =邊緣」。看到這篇文章的更多細節;

實現對IIS http://msdn.microsoft.com/en-us/library/cc817572.aspx