【问题标题】:Lazy loading from CDN从 CDN 延迟加载
【发布时间】:2019-04-18 14:42:19
【问题描述】:

是否可以从外部服务器加载惰性模块?我想将我的资源上传到 CDN,但似乎懒惰的模块正在从我的 node.js 服务器加载,这对我不利。

我的服务器只提供 Angular 应用程序的 index.html,但资源将从 cdn 加载。它启动并正常工作,直到应该加载一个相对于我的服务器而不是 CDN 的惰性模块。

【问题讨论】:

  • 这是一个 WebPack 问题,您必须使用自定义 WebPack 配置。 Angular 中没有任何选项可以更改延迟加载的 URL。仅支持更改块文件的名称。
  • 我不直接使用webpack。这些资源是使用 CLI 构建的,我想将它们作为来自 CDN 的静态资源。

标签: angular


【解决方案1】:

下面将设置它在哪里寻找延迟加载的模块。 (你也可以将它添加到 angular.json 中)

ng build --prod --deploy-url https://yourcdn.com/path/

这也有效

ng build --prod --deploy-url /path/to/javascript/

这里列出来

ng build --help

我使用的是 AngularCLI 7.0.5 我没有检查他们添加了这个标志的版本。

【讨论】:

  • 这似乎不适用于实际的代码分割资产。 main.js、runtime.js 和所有 css 都从 CDN 引用,但所有代码拆分文件(1.js 等)仍然在本地引用。
【解决方案2】:

要设置延迟加载的模块路径,请使用--deploy-url

ng build --deploy-url=/dist/some_folder
ng build --deploy-url=//localhost:5021/dist/cdn/

要更改资产路径,请使用--base-url=/asset/path

所以要在本地加载资产并从 CDN 延迟加载模块

ng build --base-url=/asset/path --deploy-url=//localhost:5021/dist/cdn/

【讨论】:

    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 2011-04-29
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多