【问题标题】:Lazy loaded chunks - loaded from wrong URL延迟加载的块 - 从错误的 URL 加载
【发布时间】:2019-11-26 01:35:59
【问题描述】:

我在现有的 Java EE 应用程序中有一个工作的 Angular5 应用程序。 此 Java EE 应用程序打包为 WAR,并包含我的应用程序的 Angular 源代码,打包方式为:

ng build --prod --output-hashing none

所有模块都已预加载

我现在切换到模块的延迟加载,并且使用 ng serve (localhost:4200 - 本地开发) 一切正常。模块实际上是延迟加载的。

在我的最终 WAR 中,所有已编译的源都包括在内,例如 main.bundle.js、0.chunk.js ... 5.chunk.js

问题

我的问题是块是从 http://localhost:4200/0.chunks.js 加载的,就像使用 ng serve 时一样。 我在 main.bundle.js 中看到了对 http://localhost:4200 的引用,这解释了为什么从那里加载块。

问题

如何实现从与 main.bundle.js 相同的 URL 加载块?

我事先不知道 URL 是什么。我玩过 deploy-url,但这对我不起作用。

【问题讨论】:

  • 奇怪,从来没有从绝对网址延迟加载。一定是一些配置问题。构建.baseHref?您可以在 plnkr 或其他中发布指向 angular-cli.json 的链接吗?
  • 我发现了问题:在 hmr.ts 中有些人前段时间添加了这些行:declare var __webpack_public_path__: string; __webpack_public_path__ = 'http://localhost:4200/'; 删除后没有问题,现在再次使用 base-href。

标签: angular angular2-routing angular5


【解决方案1】:

您可以使用APP_BASE_HREF 令牌。 根据documentation

import {Component, NgModule} from '@angular/core';
import {APP_BASE_HREF} from '@angular/common';

@NgModule({
  providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]
})
class AppModule {}

【讨论】:

  • 旧讨论。但似乎APP_BASE_HREF 对加载块js文件的路径没有影响。
猜你喜欢
  • 2019-12-02
  • 1970-01-01
  • 2018-05-22
  • 2011-05-20
  • 2020-04-10
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多