我在使用css-loader的项目中使用WebPack。
此项目中的SVG元素具有标记定义,这些标记在样式表中分配如下:
标记定义:
<defs>
<marker id="line-marker">
<circle cx="6" cy="6" r="5"></circle>
</marker>
</defs>
标记使用:
path.nv-line {
marker-mid: url('#line-marker');
}
我正在使用样式中的标记,因为我不想弄乱我正在使用的图表库,但是css加载器会破坏URL。
有没有办法忽略这些规则中的某些URL值或以其他方式阻止加载程序失败?
答案 0 :(得分:0)
所以这似乎是一个较少的问题。
如果引用是在不在较低入口点的顶层进行处理的文件中进行的,那么该URL将被添加到前面。
我在GitHub上报告了这个问题: https://github.com/less/less.js/issues/2320
作为一种变通方法,您可以在顶级文件夹中的较少文件中使用这些规则,并且uri将保持不变。
答案 1 :(得分:0)
您是否使用--relative-url
选项进行编译?如果是这样,则结果是预期的,因为此选项明确要求将任何url
更改为相对于url
中使用的marker-mid
的文件(在此特定情况下,Less不能知道此--relative-url
url具有与生成的CSS文件完全无关。)
因此,作为一种解决方法,您需要选择其中一种:
url
marker-mid: ~"url(#line-marker)";
与Less(即:url
)marker-mid: '#line-marker';
(即:{{1}} - 虽然我不确定这是否会保持符合标准)