Angular CLI将文件从assets文件夹复制出来

7

有人能告诉我为什么Angular CLI项目会将资产文件夹中的图形文件复制到输出文件夹的根目录吗?

例如,我在src/assets/background.jpg中有一个图形文件,并从我的src/styles.css文件引用该图形:

body {
    background-image: url(./assets/background.jpg);
}

现在,当我使用以下命令构建项目时:
ng build --prod --output-hashing=none --output-path=target/output

现在我有以下生成的输出结构:

target/ouput
  ...
  background.jpg
  assets
    background.jpg

这个css引用了复制版本的背景文件,一切都正常,但现在我有两份文件。如何从assets/background.jpg引用此文件,以便不会出现两份文件?

谢谢; 大卫


你能展示一下你的开发根目录下的文件,.angular-cli.json中的"assets"部分以及你的@angular/cli版本吗? - angularrocks.com
你是否在整个项目中搜索了 (string) background.jpg?你可能在其他地方使用它。 - R_Ice
我开发根目录中的文件有:e2e src target node_modules .angular-cli.json .editorconfig karma.conf.js package-lock.json package.json pom.xml protractor.conf.js README.md tsconfig.json tslint.json此外,我最近更新了angular-cli v1.2.6。我认为我没有修改.angular-cli.json文件的Assets部分,该部分设置为: "assets": [ "assets", "favicon.ico" ], - David V
我有同样的问题,有什么想法吗? - Seryoga
有什么建议吗? - Lakshitha
1个回答

2

这个想法是将您需要部署的所有内容放在指定的输出文件夹中。然后,您可以通过将输出文件夹复制到服务器来进行部署。

如果 --prod 构建未复制该文件,则它不会出现在输出文件集合中,并且您需要额外的步骤才能进行部署。


2
正在部署,"ng build" 正在将整个资产文件夹复制到输出目录中,其中已经包含了 background.jpg 文件,因此在它将该文件复制到输出根文件夹后,它会出现两次。 - David V
你的回答并没有解决问题。他的问题是为什么Angular会重复上传资产并将其上传两次。 - Mick
我的理解是,“有人可以告诉我为什么 Angular CLI 项目会将 assets 文件夹中的图形文件复制到输出文件夹的根目录吗?” - DeborahK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接