【发布时间】:2021-08-28 19:14:49
【问题描述】:
我需要将 SVG 文件加载到 Vue 模板中。它必须以这样一种方式加载,以便我可以使用 js 和 css 访问内部类,所以大概我正在寻找一个 <object> 标签而不是 <img> 标签。
SVG 位于外部服务器上,不是我项目的一部分。如果我将 svg 作为项目的一部分,Vue-Svg-Loader 就可以正常工作,但是当 SVG 直到运行时才可用时,它似乎不起作用。
我尝试了以下方法
<template>
<div ref="floorplan" id="floorplan-frame">
<object
type="image/svg+xml"
id="floorplan"
:data="svgPath"
></object>
</div>
</template>
<script>
export default {
data() {
return {
svgPath: 'http://test-mc4/floorplan.svg',
};
},
};
</script>
不幸的是,它不起作用。如果我用<img :src="svgPath" /> 替换<object> 标记,它确实显示了SVG,但作为内部css 类不可用的静态图像。它确实向我表明我的路径是正确的并且文件实际上是可用的,但它并没有解释为什么我使用它时对象标签只是空的。
我进行了广泛的搜索,如果它是内部的,我可以弄清楚如何将其加载为对象,或者只要它是图像,如何将其加载为外部。我似乎无法弄清楚如何做到这两点。
【问题讨论】: