1

我对 Angular 5 有疑问。我正在尝试使用aotng serve ==> ("start": "ng serve --ssl --aot"package.json文件中)在生产模式下运行我的应用程序。但是,在这种情况下,应用程序找不到 html 文件。它aot虽然没有。我尝试了几种解决方案(在此处此处提到),例如更改这些文件中的字段中的文件路径(例如,绝对路径)templateUrl或更改应用程序路由或添加moduleId: module.id,但它们不起作用。请参阅以下错误:

在此处输入图像描述

任何的想法?

4

1 回答 1

1

我在我的一个项目中遇到了类似的问题。

对我来说,问题是我在不同的文件中引导我的应用程序(我们对用户何时可以登录有要求,如果他们不能,我们不想加载应用程序)。

它适用于 Angular 4,当我们升级到 Angular 5 时,我们得到了错误。

我们有一些类似的东西:

const hack = false;
if (hack) {
  platformBrowserDynamic().bootstrapModule(AppModule);
}

const bootstrap = new Bootstrap(AppModule);
bootstrap.initializeBootstrap();

我们传入我们的模块,让引导文件完成剩下的工作。我们这样做是因为在 Angular 4 中存在一个错误,它不允许引导代码位于另一个文件或承诺中,请参见以下内容:

https://github.com/angular/angular-cli/issues/3540

Angular 4.0.0 找不到引导代码

在升级到 Angular 5 后,将其更改为基于承诺似乎已经解决了这个问题。

const bootstrap = new Bootstrap();
bootstrap.initializeBootstrap().then(() => {
  console.log('user is allowed to see, bootstrap the app');
  platformBrowserDynamic().bootstrapModule(AppModule);
}, (error) => {
  console.log('user is not allowed access do something here', error);
});

希望这可以帮助。

于 2018-01-02T19:29:55.377 回答