vuejs v-html图像标签不解析src

Posted

技术标签:

【中文标题】vuejs v-html图像标签不解析src【英文标题】:vuejs v-html image tag not resolving src 【发布时间】:2019-05-06 18:25:11 【问题描述】:

我有一个 vue 页面,它使用 v-html 将 html 内容放入 <div> 中,如下所示:

<div v-html="noDataMessage">               
</div>

并且noDataMessage的数据设置在vue的created()生命周期钩子中。

created()   
   this.noDataMessage = "<img src='../assets/Content/img/Myfav_empty.png' width='35px' height='35px'>";

html 标签显示正常,但无法获取图像。 我尝试单独加载图片,看看图片路径是否正确,得到了图片。

我是否特别遗漏了 vue.js 或 v-html 的任何内容?

【问题讨论】:

如果您查看this fiddle,它似乎工作正常。我认为问题实际上出在您的道路上。编辑:也许看看 at this link 可能会解决您的问题 在浏览器控制台的网络选项卡中查看是否正在发出对图像的请求,如果是,是否由于404错误而失败,在这种情况下,如上评论者建议,您的路径将是错误的 代替这条路径../assets/Content/img/Myfav_empty.png,试试这个@/assets/Content/img/Myfav_empty.png,或者这个~@/assets/Content/img/Myfav_empty.png 【参考方案1】:

它似乎只是完美的。

我已经实现了相同的方式来获取图像,在这里我可以看到图像。 请再次检查路径。

您可以查看下面我尝试以相同方式实现的示例 :http://jsfiddle.net/suprabhasupi/eywraw8t/491005/

【讨论】:

【参考方案2】:

问题出在你正在使用的 src url,src url root 是公共目录。

例如,如果您将所有图像都放在 public->images 目录中,那么您的代码将如下所示:

this.noDataMessage = "<img src='images/Myfav_empty.png' width='35px' height='35px'>";

【讨论】:

这已经解决了这个问题。但是我想知道,如果要指定相对路径,有人会怎么做? 你能告诉我一个你想要的相对路径的例子吗,因为如果相对路径在公共目录之外,那么它不会用这种方式工作。

以上是关于vuejs v-html图像标签不解析src的主要内容,如果未能解决你的问题,请参考以下文章

如何在 v-html 中设置标签的子组件样式

在vue中后台返回的文本包含标签如何解析为html

VueJS:使用 v-html 来 appendChild 不起作用,为啥?

VueJS 中的 v-html 不起作用(空页面)

Vuejs 2 v-html没有触发锚事件

在 vuejs2 数据中动态插入子组件(无需 $compile 或滥用 v-html)