【问题标题】:angular 7 build app - replace assets url with real urlangular 7 build app - 用真实网址替换资产网址
【发布时间】:2019-05-26 12:56:21
【问题描述】:

在 Angular 7 应用程序中,我有不同的资源、图像、字体等。所有资源都位于 src/assets/images 或 src/assets/fonts 等中

我的文件是这样使用的:<img src="/assets/images/img.png">

angular.json 看起来像这样:

 .....
 "assets": [
          "src/favicon.ico",
          "src/assets"
        ]
 .....

构建时我使用:

ng build --prod --build-optimizer --deploy-url=https://cdn.domain.com

这将替换所有对 assets 资源的引用:

<img src="/assets/images/img.png">

到这里:

<img src="https://cdn.domain.com/assets/images/img.png">

我的问题是如何在构建时删除assets/images 路径,以便构建输出后:

<img src="https://cdn.domain.com/img.png">

【问题讨论】:

  • 这个 标签是否在您的 index.html 文件中?
  • 不,它在模板中,但基本上所有指向本地资产/图像、资产/字体的 url 都会被替换,包括 index.html 中文件的 url。这是我想要的,但我希望删除资产/路径......问题是我会将所有文件发布到平面文件夹中的 cdn,因此我将无法从我的资产文件夹中获得文件夹路径结构
  • 我刚刚使用 Angular CLI 生成了一个新应用程序:7.1.4。执行了您的构建命令: ng build --prod 等,并且链接不会被完整的 url 替换。所有资产都复制到“资产”下的 dist 文件夹中。你能再试一次全新的项目吗?

标签: angular angular6 angular-cli angular7 angular-builder


【解决方案1】:

你可以替换

 "assets": [
    ...
    "src/assets",
    ...
  ]

"assets": [
  ...
  { "glob": "**/*", "input": "src/assets", "output": "/" },
  ...
]

所有文件都在“/dist/environment/”而不是“/dist/environment/...”

然后在你的html文件中,直接使用:

<img src="/img.png">

看看这里:https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/asset-configuration.md

:-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2014-11-18
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多