如何在webpack中包含svg

时间:2019-02-07 16:31:53

标签: angularjs svg webpack

我使用

包含了我的svg
<div ng-include="'src/assets/arrowdown.svg'"></div>

在使用npm run dev时可以正常使用

webpack-dev-server --https --host 0.0.0.0

但是当我使用构建时,使用ng-include包含的svg不会被处理。

与其他svg(用作经典资源)一起,它们在构建时被读取,其名称被更改以处理版本控制,并且输出如下所示:

background: url(//assets.mysite.com/build/4341cb2ee439f765105fb3258df4048c.svg) 50% no-repeat

使用ng-include时,最终版本如下:

GET https://assets.mysite.com/src/assets/img/arrowdown.svg 404 (Not Found)

因此加载程序不会读取svg

我该怎么做才能使webpack检测ng-include并提取资源中的svg?

谢谢

在webpack 1.13.2中使用angularjs 1.5.5。

1 个答案:

答案 0 :(得分:0)

尝试了不同的方法后,我终于有了一些可行的方法。

只要有人没有更好的主意,就把它放在这里。

我创建了一个包含svg内联的简单服务。

加载这样的资源:

<span ng-include="loadSvgResource('count')"></span>

在控制器中:

this.loadSvgResource = function(d) {
    return svgResourceService[d];
};

该服务包含嵌入式svg:

this.count= "data:image/svg+xml,...";

虽然不多,但在我当前的限制下,这是诚实的工作。