当我通过ng build
命令在dist
文件夹中构建项目时,我同时拥有所有其他资源的js
文件,但我想将所有图像和字体移动到{ {1}}。有人可以帮我吗?
更新:
angular.json
assets
在我拥有的组件的scss中:
"assets": [
"src/favicon.ico",
"src/assets"
],
但是结果我进入了dist文件夹的下一个文件:
background-image: url('assets/img/no-notifications.svg');
目标保持图像路径与在scss文件中指定的图像路径相同:
no-notifications.7e08682a570485d1c108.svg
答案 0 :(得分:2)
如果您还不知道,则在角度cli配置中添加了一个新选项(自v7.2.1起),以将css资源复制到另一个文件夹中(相对于输出路径)。
"outputPath": "wwwroot",
"resourcesOutputPath": "images"
答案 1 :(得分:1)
尝试
在img
内创建assets
文件夹
并使用./assets/img/your_image
它将起作用。
答案 2 :(得分:1)
给定的解决方案"resourcesOutputPath": "images"
适用于图像。但是不幸的是,如果我们需要对其他资源(例如*.js
或*.ttf
文件等)执行相同的操作,它将无法正常工作。
这是我对*.js
文件的处理方式:在package.json
节点下方的文件scripts
中,我添加了一个名为postbuild
的脚本,该脚本将: >
resources
)<script src="*.js"></script>
中的index.html
并将其替换为<script src="resources/*.js"></script>
。搜索和替换是通过sed
命令行完成的(请注意,在Linux或MacOS上,sed
命令行有一些区别)。这是我的package.json
文件的最终外观:
{
"name": "my-project",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build",
"postbuild": "mv ./dist/my-project/*.js ./dist/my-project/*.js.map ./dist/my-project/resources; sed -i -e 's/src=\"/src=\"resources\\//g' dist/my-project/index.html",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}
}
答案 3 :(得分:0)
默认情况下,使用“ ng build”命令“ assets”及其“子文件夹”将自动复制到“ dist”文件夹。如果要在同一根目录下创建另一个文件夹,请说“资源”。
在angular.json中,存在“资产”配置,我们可以在其中定义“ src /资源”。
angular.json
"assets": ["src/resources"],