2013-10-01 28 views
0

我遇到了最奇怪的問題。無法在IE9的內部服務器上部署clientapp,但可以在外部工作

我在我的公司做了一個概念驗證應用程序。所以它沒有後端,只是在Angular JS中構建的演示前端。我已經與yeoman一起對這個項目進行了schaffolde,並且用咕嚕聲建造了它。它在本地完美運作。

我已將它部署在我公司的內部服務器上。它也適用於每個瀏覽器,除了 IE9。

在控制檯我得到

SCRIPT438: Egenskapen eller metoden addEventListener stöds inte av objektet 
jquery.min.js, rad 4 tecken 6105 

SCRIPT5009: jQuery har inte definierats 
jquery-ui.min.js, rad 5 tecken 1 

SCRIPT5009: jQuery har inte definierats 
1bd2ba7a.scripts.js, rad 1 tecken 28462 

SCRIPT445: Objektet kan inte hantera denna åtgärd. 
angular.min.js, rad 23 tecken 453 

這是一個在瑞典,但我希望你明白反正。

現在到更奇怪的部分。我試着將它部署在外部服務器上。它適用於IE9!

正如我所說,我沒有服務器代碼,所以沒有任何安裝我失蹤。另外,我沒有任何CDN:s。一切都是本地的。

任何人有任何想法如何調試?我卡住了。

回答

0

我遇到了同樣的問題,儘管使用了Yeoman腳手架的Angularjs項目。原來美國聯邦政府也爲所有內部網站設置IE兼容模式。在IE兼容模式(IE9)下,Angularjs應用程序的index.html頁面不會呈現。

經過試驗後,我發現如果刪除了以下Yeoman製作的樣板文件,會發生一些有趣的事情。 IE從兼容模式轉換到標準模式,應用呈現並運行良好。這裏的樣板被刪除:

<!--[if lt IE 7]>  <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]>   <html class="no-js lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]>   <html class="no-js lt-ie9"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> 

萬一有人導航到該頁面尋找一個解決方案與IE兼容模式約曼項目有關的問題,像我一樣,我想我會在這裏記錄的情況下,我的經驗它可能會幫助其他人。

剛剛發現這種替代方式通過包裝上的if/endif用HTML5來解決這個問題(IE8問題)的if/endif:Override intranet compatibility mode IE8

感謝您開啓這個問題。

0

問題已解決。問題在於IE設置爲以兼容模式運行Intranet頁面。這是工具 - >兼容模式中的一個選項。該選項由我們的IT部門集中激活。原因是舊的內部應用程序需要這個工作。因此,這種情況下的解決方案是在外部服務器上解析應用程序。

相關問題