我使用的是Angular 12和ng-inline-svg。我的.svg文件存储在src/assets文件夹中。
SVG位置(类型脚本):
angleIconUrl = '${environment.assetsPath}assets/media/svg/icons/Navigation/Angle-double-left.svg';
(environment.assetsPath
包含“/”或“dashboard/”(开发资产和生产资产)
内嵌SVG(HTML):
<span class="svg-icon svg-icon-xl" (onSVGFailed)="fail($event)" [inlineSVG]="angleIconUrl"></span>
我没有显示所提供的svg,而是得到了以下错误:No SVG found in loaded contents.
当我尝试在一个带有src属性的img标签上使用相同的angleIconUrl时,它工作了。
我已经尝试将SVG文件添加到angular.json文件中的资产中,但无论如何都不起作用。
"assets": [
"src/favicon.ico",
"src/assets",
"src/.htaccess",
"src/assets/media/svg/icons/Navigation/Angle-double-left.svg"
],
2条答案
按热度按时间evrscar21#
默认情况下,资产包被复制到您的
/dist
文件夹,而不是{dist}/assets/
下(dist
根据您的angular.json配置属性outputPath
而变化)您可以从SVG url中删除
assets/
,也可以更新angular.json
以具有以下内容要测试它是否工作,您可以直接在浏览器地址栏中输入
http://localhost:4200/assets/media/svg/icons/Navigation/Angle-double-left.svg
(根据您的配置更改主机和端口)。如果它加载,则您的配置是正确的。如果不是,则需要尝试从路径中删除assets/
tzxcd3kk2#
我共享了存储在apps/shared/assets/icons/* 中的svg图标。对于angular 14,这是有效的:
在angular.json中:
html格式的图标路径:
并在服务器上添加了svg mime类型: