Angular 7应用程序在IE 11中无法正常运行

时间:2019-02-15 11:44:21

标签: angular internet-explorer routing

应用程序在所有浏览器(包括IE 11)的本地环境中均能正常工作。

但是在deployemnt之后,它没有导航到IE中的主页,除非它导航到默认错误页面。它正在发生 仅在IE 11中。

只有我注意到IE删除了已部署版本中的尾部斜杠。

http://localhost:4200/-在IE中工作正常,但http://myapplication.com/main/在IE中不工作,它显示错误页面。

应用程序路由模块

const routes: Routes = [
  {path: '', loadChildren: './modules/customer/customer.module#CustomerModule'},
  {path: '**', component: ErrorpageComponent, data: {name: 'noMatch'}},
]; 

客户模块

const customerRoutes: Routes = [
  {
    path: '',
    component: CustomerComponent,
    children: [
      {path: '', component: OnboardingComponent},
      {path: '**', component: ErrorpageComponent, data: {name: 'noMatch'}}
    ]
  }
]; 

在IE中,部署后,它总是重新分配到ErrorPageComponent。在本地运行时,它在IE中也可以正常工作。

任何帮助将不胜感激。

修改

我忘了提到从nginx(服务器端)添加了“ myapplication.com/main/”。客户端,我们没有添加main

我也尝试过在产品模式下运行应用程序,ng serve --prod在IE中运行良好。部署到Dev后,它不起作用

3 个答案:

答案 0 :(得分:0)

如果您导航到.randomName { background-color:#ff0; font-weight:bold; },我怀疑您想看<input id="uNameInput" class="choosename" type="text" maxlength="12" minlength="4" placeholder="username" required> <input id="gen-button" class="modern" type="button" value="Generate usename"> <br> <!-- Just for demonstration --> Your randomly assigned name is: <span class="randomName"></span>。在这种情况下,您应该将OnboardingComponent添加到myapplication.com/main/的路径中。

main

当然,您还必须在OnboardingComponent的本地环境中使用它。

答案 1 :(得分:0)

您可能需要包括IE polyfills。这些可以在src / polyfills.ts中找到,您可以取消注释以下内容:

/** IE9, IE10 and IE11 requires all of the following polyfills. **/   
import 'core-js/es6/symbol';   
import 'core-js/es6/object';   
import 'core-js/es6/function';   
import 'core-js/es6/parse-int';   
import 'core-js/es6/parse-float';   
import 'core-js/es6/number';   
import 'core-js/es6/math';   
import 'core-js/es6/string';   
import 'core-js/es6/date';   
import 'core-js/es6/array';   
import 'core-js/es6/regexp';  
import 'core-js/es6/map';  
import 'core-js/es6/weak-map';  
import 'core-js/es6/set';

答案 2 :(得分:0)

最后,我找到了问题并解决,在这里分享,可能会对其他人有所帮助。 我在app.module中添加了相对路径,它开始在IE中工作。

Appmodule

export function getBaseHref(): string {
  return window.location.pathname;
} 

....

providers: [{
  provide: APP_BASE_HREF,
  useFactory: getBaseHref,
}],