如何更改延迟加载Angular 2查找块的位置?

Nat*_*ebb 2 webpack angular

我使用loadChildren语法在我的Angular 2项目中设置了延迟加载.我遇到的问题是,在创建块之后,浏览器似乎不知道在哪里查找它们.它总是尝试从根目录加载块,例如http://localhost:55626/1.chunk.js.这当然不是它们存储的地方.

我已经能够通过使用.NET捆绑器捆绑块来解决这个问题,但是当然这意味着它们在开始时都被加载并且无法使用延迟加载的目的.我猜这是一个问题,webpack默认在错误的位置查找创建的块,ng build但我对此没有信心,即使我是对的,我也明白用angular-cli构建的项目目前做的不支持自定义webpack.config.js.

任何人都可以对这个问题有所了解吗?谢谢!

我正在使用Angular 2.4.6.

编辑:为了澄清,我使用angular-cli构建这个项目,它不支持自定义webpack.config文件,按照https://github.com/angular/angular-cli/issues/1656#issuecomment-240171375

Nat*_*ebb 10

事实证明,angular-cli.json文件中有一个控件可以控制:

{
  "apps": [
    {
      "deployUrl": "./path/to/files/"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我认为deployUrl应该指出输出源,ng build以便它们可以根据需要捆绑在一起.请注意,路径必须以斜杠("/")结尾才能使延迟加载工作.

添加此属性为我解决了问题,我现在正在加载,就像我做其他所有事情一样.

请参阅https://github.com/angular/angular-cli/issues/5652