Angular将图像复制到其根文件夹
我将我的资产图像保存在“assets/images/icons”文件夹下,在我的style.scss文件中,我有“background:url(assets/images/icons/searchbox\u magnifier.png)禁止重复”等规则但是,在制作产品构建时,Angular将所有这些文件放在其根文件夹中,并根据它更改style.scss规则,如“background:url(searchbox_magnifier.png)”,请参见所附图片Angular将图像复制到其根文件夹,angular,Angular,我将我的资产图像保存在“assets/images/icons”文件夹下,在我的style.scss文件中,我有“background:url(assets/images/icons/searchbox\u magnifier.png)禁止重复”等规则但是,在制作产品构建时,Angular将所有这些文件放在其根文件夹中,并根据它更改style.scss规则,如“background:url(searchbox_magnifier.png)”,请参见所附图片 如何避免此问题?在文件中,请查找:
如何避免此问题?在
文件中,请查找:
"assets": [
"assets",
"favicon.ico"
]
作为默认设置
根据/node\u modules/@angular/cli/lib/config/schema.json
,资产接受:
"assets": {
"type": "array",
"description": "List of application assets.",
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"glob": {
"type": "string",
"default": "",
"description": "The pattern to match."
},
"input": {
"type": "string",
"default": "",
"description": "The dir to search within."
},
"output": {
"type": "string",
"default": "",
"description": "The output path (relative to the outDir)."
},
"allowOutsideOutDir": {
"type": "boolean",
"description": "Allow assets to be copied outside the outDir.",
"default": false
}
},
"additionalProperties": false
}
]
},
因此,在您的情况下,请尝试更改为:
"assets": [
...
{
"glob": "**/*",
"input": "./assets",
"output": "assets/"
}
]
或者你想让他们呆在哪里。我也面临着同样的问题。如果在CSS文件中用作相对路径,则来自assets文件夹的图像将复制到dest build的根目录中
如果CSS中的路径是绝对路径,则不是。使用绝对路径解决了@angry beaver的问题,只是因为他的应用程序部署到了他的web服务器的根文件夹中
请注意,如果在构建中使用--base href,它会将其附加到CSS文件中的url。因此,如果每个目标都在另一个子文件夹中(例如,qa在根文件夹中,而生产在子文件夹中),则执行需要部署到不同目标(qa/pre-prod等)的生成时会遇到问题。从中删除所有CSS文件
“风格”:[
“css的路径”
]
在angular.json文件中
在index.html中添加所有这些css文件引用
css中引用的图像,如果该css文件被捆绑,那么所有这些图像都会被复制到build文件夹。我也遇到了同样的问题。只需将路径从相对更改为绝对即可解决此问题
例如,
背景图像:url(“../../../assets/images/background.svg”)
或
背景图像:url(“~src/assets/images/background.svg”)
替换为
背景图像:url(“/assets/images/background.svg”)
它将解决您的问题您是否使用angular cli进行构建?是的,ng build--prod--AOT您使用的是哪个版本的cli?是否有angular.json文件或.angular cli文件?angular cli:1.7.3,并且在项目的根文件夹下还有.angular-cli.json文件。感谢您的帮助!我试图实现您的代码,但遇到了一个问题,我无法生成,因为控制台中有很多错误,然后我只是将css代码从url(assets/images/icons/searchbox\u magnifier.png)更改为url(“/assets/images/icons/searchbox\u magnifier.png”)现在,它按照预期进行了构建。我当时没做什么:)很高兴你解决了你的问题!