Angular cli从资产文件夹中复制文件

Posted

技术标签:

【中文标题】Angular cli从资产文件夹中复制文件【英文标题】:Angular cli copying files out of the assets folder 【发布时间】:2018-01-19 08:07:56 【问题描述】:

有人能告诉我为什么 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 版本是什么? 您是否在整个项目中搜索过(字符串)background.jpg?您可能正在其他地方使用它。 我的开发根文件夹中的文件是: 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”,“favicon.ico”], 我有同样的问题有什么想法吗? 有什么建议吗? 【参考方案1】:

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

如果 --prod 构建没有复制该文件,它就不会出现在输出文件集中,并且如果没有您的额外步骤就不会被部署。

【讨论】:

它正在部署中,“ng build”正在将我的整个资产文件夹复制到已经包含 background.jpg 文件的输出中,所以在它也将该文件复制到输出根文件夹之后它就在那里两次。

以上是关于Angular cli从资产文件夹中复制文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将文件从“资产”文件夹复制到 SD 卡?

从无根设备中的资产文件夹复制数据库

无法将 SQLite 数据库从资产文件夹复制到设备内存

csharp 从资产中复制文件

关于资产优化的 Angular-cli 'JavaScript heap out of memory'

将 db 从资产复制到设备数据文件夹时出现 FileNotFoundException